본문 바로가기
Programming/Design Pattern

Strategy Pattern

by 빠긔 2019. 12. 26.
반응형

1. 정의

 1) 여러 알고리즘 전략이 존재하고, 상황에 따라 적합한 정책을 적용시킨다.

 

2. 문제

 1) 클라이언트에 모든 알고리즘을 포함시키는 것은 클라이언트 코드의 양이 늘어나고 복잡해짐 -> 유지 보수 어려움

 2) 알고리즘의 다른 버전이 존재해서, 중복으로 존재하거나 if문을 이용해서 선택해야함.

    OCP(Open-Closed Principle) 위반

 

3. 해결방안

 1) 중복을 공통화시키고, 실행 시점에 맞는 알고리즘을 호출하도록 한다(상속 또는 인터페이스 활용)

 2) 새로운 알고리즘이 필요하면 알고리즘 클래스를 추가하여 전략적으로 상황에 맞게 알고리즘을

    사용할 수 있음. 알고리즘의 확장이 용이함.

 

4. 사용 예제

 1) 조리법이 다른 경우

 2) 파일의 압축 방법이 다른 경우 등.

 

Strategy Pattern의 Class Diagram

반응형

'Programming > Design Pattern' 카테고리의 다른 글

Decorator Pattern  (0) 2019.12.27
Observer Pattern 과제  (0) 2019.12.27
Observer Pattern  (0) 2019.12.27
Strategy Pattern 과제  (0) 2019.12.26
디자인 패턴을 배워야 하는 이유  (0) 2019.12.26