[Swift 디자인 패턴] Strategy Pattern (전략) - 디자인 패턴 공부 22
Sample-Code
Strategy Pattern은 Algorithm Family를 정의하고 각 알고리즘을 캡슐화 한 뒤 런타임에서 알고리즘을 서로 바꿔 사용할 수 있는 디자인 패턴이다.?
Strategy(Compositor)
- 지원되는 모든 알고리즘에 사용되는 공통적인 Interface를 정의한다.
- Context는 Strategy Interface를 사용하여 Concrete Strategy에 정의된 알고리즘을 호출한다.
Concrete Strategy
- Strategy Interface를 사용하여 알고리즘을 구현한다
Context(Composition)
- Concrete Strategy 객체로 구성된다.
- Strategy 객체에 대한 참조를 유지한다.
- Strategy가 데이터에 접근할 수 있는 Interface를 정의한다.
Strategy 패턴은 언제 사용하나?
- Strategy Pattern은 어떤 상황에서 사용할 알고리즘이 여러 개 존재할 수 있을 때 사용하면 좋다.
- 알고리즘을 run-time에서 바꿀수 있기 때문에 이와 같은 상황에서 효과적이다.