전략패턴 : 알고리즘 군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해준다 전략패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다 * 캡슐화 : 달라지는 부분을 찾아서 나머지 코드에 영향을 주지 않도록 한다 그러면 코드를 변경하는 과정에서 의도치 않게 발생하는 일을 줄이면서 시스템의 유연성을 향상시킬 수 있다 즉, 어떤 일을 수행하는 알고리즘이 여러가지 일 때, 동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 알고리즘 변형이 빈번하게 일어나는 경우에 적합한 패턴이다 구조 1. 전략 알고리즘 객체들 : 알고리즘, 행위, 동작을 객체로 정의한 구현체 2. 전략 인터페이스 : 모든 전략 구현에제 대한 공용 인터페이스 3. 컨텍스트 : 알고리즘을..