알고리즘을 모두 바꾸기
* Strategy Pattern (= Policy Pattern)
- 알고리즘군을 정의한다
- 각각을 캡슐화한다
- 그리고 그것들을 상호교환한다
- 클라이언트로부터 독립적으로 알고리즘을 변경할 수 있게 한다
* 의도
- 특정 행동을 수행하기 위해 교체 가능한 캡슐화된 알고리즘의 집합을 정의하기 위해서
* 활용
- 많은 관련된 클래스들 간의 차이점이 특정 행위 뿐일 때
- 알고리즘의 여러 버전, 변형이 요구될 때
- 클래스의 행동은 런타임에 정의되어야만 할 때
- 조건문이 너무 복잡해서 유지보수하기 힘들 때
* 디자인 원리
- 변화하는 것을 캡슐화한다
- 구현하지 않고, interface 를 사용한다
- super 타입을 이용한다
- 다형성을 이용한다
- inheritance 보다 composition 을 선호한다
* Object Composition + Delegation
'SW 공학 > ::: 패턴' 카테고리의 다른 글
///[GoF] Template Method Pattern (0) | 2021.09.26 |
---|---|
///[GoF] Observer Pattern (0) | 2021.09.25 |
Design Pattern 이란? (0) | 2021.09.20 |
/// Humble Object Pattern (0) | 2020.10.12 |
//J2EE 패턴 (0) | 2020.10.05 |