전략 패턴이란?

인터페이스와 위임을 사용하여 특정 기능을 자유롭게 변경할때 사용하는 패턴

행위를 캡슐화 하여 동적으로 바꿀 수 있게 해주는 패턴

구조

structure.png

  • Strategy
    전략사용으로 해당 전략에 대한 인터페이스 제공
  • Context
    인스턴스를 주입받아 사용하는 객체

장점

실제로 사용하는 객체의 수정없이
외부 코드의 변경이나 추가만으로 사용하는 객체의 행위를 변경할 수 있다

단점

추가하는 전략당 객체가 추가되어, 코드 자체가 늘어나 관리포인트가 늘어나게 된다.


참고