@desc
: Classes should be open for extension(확장), but closed for modification(코드 변경)
@example
: Beverage(Super Class) & CondimentDecorator(Sub Class)
: DarkRoast is Beverage, and Mocha, Whip are CondimentDecorator
: Mocha는 Beverage(DarkRoast)의 Cost() 결과에 Mocha에 해당하는 처리만 덧붙인다.
: Whip은 Beverage(DarkRoast + Mocha)의 Cost() 결과에 Whip에 해당하는 처리만 덧붙인다.
: 즉 각각의 Decorator는 자신의 객체인 Beverage의 결과에는 아무런 영향을 주지 않으면서,
: 동시에 필요한 기능을 확장하게 된다.
: Classes should be open for extension(확장), but closed for modification(코드 변경)
@example
: Beverage(Super Class) & CondimentDecorator(Sub Class)
: DarkRoast is Beverage, and Mocha, Whip are CondimentDecorator
: Mocha는 Beverage(DarkRoast)의 Cost() 결과에 Mocha에 해당하는 처리만 덧붙인다.
: Whip은 Beverage(DarkRoast + Mocha)의 Cost() 결과에 Whip에 해당하는 처리만 덧붙인다.
: 즉 각각의 Decorator는 자신의 객체인 Beverage의 결과에는 아무런 영향을 주지 않으면서,
: 동시에 필요한 기능을 확장하게 된다.
@reference
: Head First Design Patterns
by Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates, 1st Ed.
: Head First Design Patterns
by Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates, 1st Ed.
No comments:
Post a Comment