본문 바로가기

CS/디자인패턴

전략 패턴 - 행위(by GoF)

정의 : 객체의 행위를 바꾸고 싶은 경우 '직접' 수령하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴이다.

 

전략(Strategy Pattern) 예제

 

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