알고리즘 군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해준다.
전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다.
달라지는 부분을 찾아내고, 달라지지 않는 부분과 분리한다.
달라지는 부분을 찾아 나머지 코드에 영향을 주지 않도록 캡슐화한다.
구현보다는 인터페이스에 맞춰서 프로그래밍한다.
상속보다는 구성을 활용한다.
두 클래스를 합치는 것을 구성(Composition) 이라고 한다.
클래스 다이어그램에 있는 각 클래스들이 어떤 관계인지 구상해보자.

HeadFirst DesignPattern - 한빛미디어
잘 봤습니다. 좋은 글 감사합니다.