정의 : 객체의 행위를 바꾸고 싶은 경우 '직접' 수령하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴이다.
pay 라는 행위를 공통적으로 interface안에서 행위로 정의한 것을 확인할 수 있다.
→ 다르게 볼 것이 아니라 다형성이랑 Overriding 그 자체가 아닌가?...
장점
- 공통 로직이 부모 클래스에 있지 않고 Context 라는 별도의 클래스에 존재하기 때문에 구현체들에 대한 영향도가 적음
- Context 가 Strategy 라는 인터페이스를 의존하고 있기 때문에 구현체를 갈아끼우기 쉬움
단점
- 로직이 늘어날 때마다 구현체 클래스가 늘어남
- Context 와 Strategy 를 한번 조립하면 전략을 변경하기 힘듬
'CS > 디자인패턴' 카테고리의 다른 글
프록시 패턴 - 구조(by GoF) (0) | 2024.06.13 |
---|---|
옵저버 패턴 - 행위(by GoF) (0) | 2024.06.08 |
팩토리 패턴 - 생성(by GoF) (0) | 2024.06.07 |
싱글톤 패턴 - 생성(by GoF) (0) | 2024.06.07 |
디자인 패턴의 정의와 종류 (0) | 2024.06.07 |