Strategy Pattern(전략 패턴)
Strategy Pattern이란?
- Abstract Coupling and Open-closed Principle
- 특정 전략을 interface로 만들어 놓아, 그것을 자유롭게 변경하여 사용하고, user로 하여금 context에 원하는 전략을 전달하게 하여 다양한 정책을 사용할 수 있게 한다. developer에게는 복잡한 if문 대신에 각각을 interface를 implement한 class로 만들어 놓아, 이해하기 쉽고, 유지보수도 쉽게한다.
장점
- 장점은 위에 말했듯이, user가 간단하게 전략을 사용할 수 있고, developer도 이해하기 쉽고, 유지보수도 쉽게 할 수 있다.
단점
- 하나의 interface를 implements한 class들 너무 많아 질 수 있다.
코드 이해



context class와 main class이다. client가 원하는 strategy를 context에 넣어준다. 그 후, context는 strategy의 method를 실행시켜준다. 그러면 각 strategy마다 다른 결과를 얻을 수 있는 것을 볼 수 있다.
Reference
- 개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴
- 교수님 ppt