-
[GoF]전략 패턴(Strategy)Gof Design Pattern 2021. 12. 10. 16:38
전략 패턴(Strategy)
전략 패턴이란?
상황에 따라 전략이나 알고리즘을 교체하여 사용하는 패턴이다.
전략 왜 사용할까?
다양한 알고리즘(혹은 기능)이 존재할 때, 하나의 클래스로 캡슐화 하여 대체가 가능하도록 할 수 있습니다. 새로운 전략을 반영하거나 기존 전략을 삭제할 때 독립적으로 수행되기에 서로 영향을 끼치지 않습니다. 예를 들어 if-else로 같은 내용이 반복적으로 사용되는 경우 전략 패턴 사용을 고려할 수 있습니다.
전략 패턴을 사용하게 되면
- 인터페이스에 선언된 기능을 구현한 다양한 정책을 다른 클래스에 영향을 주지 않고 추가, 삭제 할 수 있다.
- if-else 조건문을 구현하는 것이 아닌 전략 패턴을 사용하여 클래스를 선택하도록 구현하여 유지보수가 용이해진다.
클래스 다이어그램
객체 협력
- Strategy :정책이 수행해야 하는 기능들을 인터페이스로 선언
- ConcreteStrategy : Strategy에 선언된 여러 기능들을 구현한다. 각 클래스 별로 다른 전략이 구현될 수 있다.
- Context : 어떤 ConcreteStrategy 가 수행 될 것인지에 따라 정책을 선택후 Strategy에 선언된 메서드를 사용해 접근한다
코드보기 Click!
'Gof Design Pattern' 카테고리의 다른 글
[GoF]데코레이터 패턴(Decorator Pattern) (0) 2021.12.16 [GoF]브릿지 패턴(Bridge Pattern) (0) 2021.12.13 [GoF] 팩토리 메서드 패턴(Factory Method Pattern) (0) 2021.12.05 [ GoF] 템플릿 메서드 패턴(Template Method Pattern) (0) 2021.12.04 [GoF] 빌더 패턴(Builder Pattern) (0) 2021.12.03