개념공부
디자인 패턴 : 전략 패턴
Cadi
2025. 1. 8. 16:38
전략 패턴
- 객체의 전략(행동)을 정의하는 알고리즘을 외부에서 선택하고 주입하여 유연성과 확장성을 높이는 설계 방식
- '전략'을 캡슐화하여 런타임에 동적으로 교체할수 있도록 설계하는 방법
- DI와 상당히 유사하나 '동적으로 교체'에 초점을 맞췄다고 보면 됨
Context(문맥) 전략을 호출하는 역할 , 전략 객체를 내부 필드로 유지, 실행하는 메서드(DoSomething()) 제공
Strategy(전략 인터페이스) : 공통 인터페이스 혹은 추상 클래스
ConcreteStrategy(구체적인 전략) : 인터페이스를 구현하여 실제 알고리즘을 정의
필요성
- 중복 제거 : if 문 혹은 Switch문의 반복으로 코드가 난잡해 지는 것을 방지
- Open-Closed Principle : 새로운 알고리즘을 추가할 때 기존 코드를 수정하니 않고 확장 가능략 패턴
- Single Responsibility Principle : 알고리즘 변경을 별도의 클래스로 분리, 하나의 책임
단점
- 클래스의 증가
- 단순한 경우 과도한 설계가 될 수 있음
참조 :
https://www.youtube.com/watch?v=ic2tGGQrq1c&t=628s