헤드퍼스트의 Design Patterns 의 내용을 보며 학습을 하고 기록을 남기려 합니다. 첫번째로는 Strategy Pattern 입니다. Strategy Pattern 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. Strategy 를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 책에서는 Strategy Pattern을 마지막에 이렇게 정리를 하였습니다. 이제 책에 있는 예제를 활용하여 어떤 패턴인지 살펴보겠습니다. 처음에 모든 오리들이 꽥꽥소리를 낼 수 있고, 헤엄칠 수 있기 때문에 Duck에 간단한 코드를 구현했습니다. MallaredDuck 과 RedheadDuck 외에도 다른 유형의 오리들도 Duck 클래스로 부터 상속을 받습니..