7. 전략 패턴(Strategy Pattern) 중요

디자인 패턴의 꽃

  • 전략 패턴을 구성하는 세가지 요소

    • 전략 메서드를 사용하는 객체

    • 전략 객체를 사용하는 컨텍스트(사용자)

    • 전략 객체를 생성해 컨텍스트에 주입하는 클라이언트

  • 상속이라는 제한이 있는 템플릿 메서드 패턴보다는 전략 패턴이 더 많이 활용됨.

  • 전략패턴 또한 OCP와 DIP 적용

  • “클라이언트가 전략을 생성해서 전략을 실행할 컨텍스트에 주입하는 패턴”

  • 변하지 않는 부분을 Context 라는 곳에 두고, 변하는 부분을 Strategy라는 인터페이스를 만들어 해당 인터페이스를 구현하도록 해서 문제를 해결.

    • 전략 패턴에서 Context는 변하지 않는 템플릿 역할을 하고, Strategy는 변하는 알고리즘 역할을 함.

  • 상속이 아닌 위임으로 문제를 해결.

Last updated