협력을 위해 필요한 의존성은 유지하되, 변경을 방해하는 의존성은 제거한다.


Dependency

어떤 객체가 협력하기 위해 다른 객체를 가질 때, 두 객체 사이에 의존성이 존재한다고 볼 수 있다.

Example: Dependency

class PeriodCondition implements DiscountCondition {
	private dayOfWeek: Date;
	private startTime: Date;
	private endTime: Date;
	
	public isSatisfiedBy(screening: Screening): boolean {
		return (
			(screening.getStartTime().getDayOfWeek() === this.dayOfWeek) &&
			(this.startTime < screening.getStartTime()) &&
			(this.endTime > screening.getEndTime()
		);
	}
}

Untitled

Untitled


Transitive Dependency