«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
04-20 00:39
관리 메뉴

lancelot.com

Head First Desing Pattern - 1장 Strategy Pattern 본문

프로그래밍

Head First Desing Pattern - 1장 Strategy Pattern

lancelot50 2009. 5. 3. 16:26
1. 디자인원칙
 바뀌는 부분은 캡슐화한다.
 상속보다는 구성을 활용한다.
 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다.


strategy pattern 을 설명하면서 Duck class를 예로 들었네요.
Duck 클래스에 fly(), quack() 등의 함수들이 있고, 이걸 상속받아서 RedheadDuck, RubberDuck 등을 만들었는데요.
그렇게하면, 자식 class에서 fly(), quack()등이 바뀌거나 재정의 될때 비효율적이됩니다.

그래서, fly(), quack() 등의 행동을 나타내는 함수를 behavior class로 빼낸 후 그것을 superclass인 Duck class가 가지고 있는 방식이 훨씬 나은 방식이라는 설명입니다.

이해가 잘 되도록 적절한 예시네요.


2. Strategy pattern
알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다.