Strategy pattern
배경
전략패턴은 Gangs of Four (GoF) Design Pattern에서 처음 소개되었으며 코드의 재사용성, 구조의 단순화, 알고리즘의 교체와 추가를 쉽게 할수 있게 해준다.
- 알고리즘을 구체적인 클래스로
캡슐화
하고,교체
할수 있는 클래스 구조를 제공한다.
따라서 코드변경을 최소화하고 알고리즘을 변경할수있다. - OCP원칙을 준수한 패턴으로 알고리즘을 구체적인 클래스로 캡슐화 하여 교체할 수 있는 클래스로 제공한다.
- 따라서 격리된 형태로 구현 및 테스트하기 용이하다.
참고: 헤드 퍼스트 디자인 패턴
교체뿐 아니라 추가도 용이해 보이는데, 변경없이 새로운로직을 쉽게 추가한다는것이 데코레이터 패턴과 비슷하다고 느껴서 비교해가며 찾아봤다.
데코레이터는 기존 코드에 수정없이 기능을 추가하는거에 목적이 있는거에 반해 전략패턴은 추가가 목적이 아니고 교체가 목적인것이 큰 차이였다.
결과적으로 내가 이해한 바로 전략패턴은 새로운것으로 교체하는것이고 데코레이터 패턴은 기존로직에 새로운 로직을 추가하는 정도로 정리할수있겠다.
따라서 전략패턴의 핵심은 수정을 최소화
하고 교체
를 할수있다. 정도로 볼수있을거 같다.