본문 바로가기
개발 관련 정보/디자인패턴

13. Strategy 패턴

by MonoSoft 2023. 4. 11.
728x90
반응형

Strategy 패턴

 

전략은 하나, 전술은 다양하게

 

strategy 패턴

strategy의 의미는 '전략', '전술'이다.

소프트웨어 개발에서 전략이나 전술은 알고리즘으로 구현한다.

 

strategy 패턴은 [그림 5-47]과 같다.

즉 알고리즘 군을 정의하고(strategySort 추상 클래스) 같은

알고리즘(버블 정렬, 퀵 정렬, 선택 정렬 등)을 각각 하나의

클래스로 캡슐화한(quickSort 클래스, selectSort 클래스, bubbleSort 클래스)

다음, 필요할 때 서로 교환해서 사용할 수 있게 해준다.

 

그림 5-47 strategy 패턴

이 패턴을 사용하면 클라이언트와 무관하게 독립적으로

알고리즘을 변경할 수 있고(quickSort→bubbleSort),

클라이언트는 독립적으로 원하는 알고리즘을 사용할 수 있다.

 

즉 이 패턴은 클라이언트에게 알고리즘이 사용하는 데이터나 그 구조를 숨겨주는 역할을 한다.

strategy 패턴은 알고리즘을 사용하는 곳과, 알고리즘을 제공하는 곳을

분리시킨 구조로 알고리즘을 동적으로 교체할 수 있다.

 

728x90
반응형

'개발 관련 정보 > 디자인패턴' 카테고리의 다른 글

15.RMI  (0) 2023.04.13
14. Bridge 패턴  (0) 2023.04.12
iterator 패턴  (0) 2023.04.06
11.Builder 패턴 / Chain of Responsibility 패턴  (0) 2023.04.04
10.composite 패턴  (0) 2023.04.03

댓글