본문 바로가기
개발/디자인패턴

전략 패턴(Strategy Pattern)

by ahoy~ 2020. 9. 25.

전략 패턴은 개방 폐쇄 원칙을 잘 지키는 구조이면서도 템플릿 메소드 패턴보다 유연하고 확장성이 뛰어나면서 오브젝트를 아예 둘로 분리하고 클래스 레벨에서는 인터페이스를 통해서만 의존하도록 만드는 것입니다.

전략 패턴은 OCP관점에서 보면 확장에 해당하는 변하는 부분을 별도의 클래스로 만들어 추상화된 인터페이스를 통해 위임하는 방식입니다. 

이 전략 패턴에 유연성을 위해서 DI를 적용할 때가 많습니다.

이를 위해 기존의 컨텍스트를 클라이언트와 컨텍스트로 분리를 합니다.

클라이언트는 단순하게 컨텍스트를 사용하는 놈, 컨텍스트는 전략을 사용하는 놈으로서 한 단계 더 분리를 했다고 봐도 무방할 것 같습니다.

 

댓글