![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtgoMl%2FbtsFn93sCeV%2FYN1uYgJgaxslojrwkDI4JK%2Fimg.png)
전략 패턴 여러 알고리즘을 캡슐화하고 상호 교환 가능하게 만드는 패턴. 알고리즘을 사용하는 클라이언트와 상관 없이 독립적으로 알고리즘을 다양하게 변경할 수 있다. 구조 Strategy - 제공하는 모든 알고리즘에 대한 공통 연산들을 인터페이스로 정의한다. Context 클래스는 ConcreteStrategy 클래스에서 정의한 인터페이스를 통해 실제 알고리즘을 사용한다. ConcreteStrategy - Strategy의 인터페이스를 실제 알고리즘으로 구현한다. Context - ConcreteStrategy 객체를 통해 구성된다. Strategy 객체에 대한 참조를 관리하고, 실제로는 Strategy 서브클래스(ConcreteStrategy)의 인스턴스를 갖고 있음으로써 구체화한다. 또한 St..