[전략 패턴] = policy 패턴
Define a family of algorithms, encapsulate each one, and make them interchangeable, Strategy lets the algorithm vary independently from clients that use it.
: 알고리즘 교체해서 같은 문제를 다른 방법으로 쉽게 해결할 수 있도록 도와주는 패턴
: 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용가능하게 한다.
[전략 패턴 기본 구조]
- Context 클래스 : 캡슐화된 알고리즘을 멤버 변수로 포함
- Strategy 인터페이스 : 각종 전략들 받아서 전달
[전략패턴 구현하기]
: 바뀌는 부분과 그렇지 않는 부분 분리하기
: 특정 행동을 Context 클래스에 구현하지 않고, 독립적으로 새로운 클래스에서 구현한다
: 생성자를 이용해 모델화
[전략패턴 예시 코드]
#예시 1 : Duck
더보기
: 바뀌는 부분 (Quack, Fly)를 분리
: swim은 모두 동일해서 context에 구현
: display는 duck마다 다르기때문에 context에 구현(duck마다 override 필요)
# 예시2 : setWeapon
# 예시3 : 가위바위보
# 예제4 - Sorter
'기타 > [고급객체지향 프로그래밍]' 카테고리의 다른 글
디자인 패턴 6강. 커맨드 패턴(Command Pattern) (0) | 2019.12.10 |
---|---|
디자인 패턴 5강. 싱글턴 패턴(Singleton Pattern) (0) | 2019.12.06 |
디자인 패턴 4강. 팩토리 패턴(Factory pattern) (0) | 2019.12.02 |
디자인 패턴 3강. Decorator 패턴 (0) | 2019.10.21 |
디자인 패턴 2강. Observer 패턴 (0) | 2019.10.20 |