본문 바로가기

Programming/Design Pattern

Strategy Pattern

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