전략 패턴
2024. 5. 29. 19:53ㆍ면접을 위한 cs 전공지식 노트/디자인 패턴
전략 패턴 (Strategy pattern) = 정책 패턴 (Policy pattern)
- 객체가 할 수 있는 행위들 각각을 전략으로 만들어 놓고 사용하며, 동적으로 전략 수정이 가능한 패턴
- 전략 패턴의 의도
- 동일 계열의 알고리즘군을 정의
- 걸어서, 뛰어서, 날아서
- 차갑게, 따뜻하게, 냉동으로, 뜨겁게
- 각 알고리즘을 캡슐화
- 이동 전략
- 온도 전략
- 이들을 상호교환 가능하도록 만듦
- 동일 계열의 알고리즘군을 정의
사용하는 이유
- 키오스크를 예시로
- 언어 선택
- 한국어
- 중국어
- 일본어
- 결제 방법
- 현금
- 카드
- 언어 선택
전략 패턴 미 사용 시
- 키오스크 추상 클래스
- 한국어 현금, 카드 클래스 2개
- 중국어 현금, 카드 클래스 2개
- 일본어 현금, 카드 클래스 2개
총 6개의 키오스크 클래스가 필요.
카테고리가 늘어나거나 (화면 밝기 - 어둡게, 보통, 밝게) 알고리즘군이 늘어나게 되면 (언어선택 - 영어)
그에 따라 클래스 개수가 증가게 되므로 비효율적이다.
전략 패턴 사용 시
- 키오스크 클래스
- 언어선택 인터페이스와 상속받은 각 언어 클래스
- 결제방법 인터페이스와 상속받은 현금, 카드 클래스
생성자를 통해 객체를 만들 때 동적으로 기능이 결정되므로 유지, 보수가 쉬워진다.
'면접을 위한 cs 전공지식 노트 > 디자인 패턴' 카테고리의 다른 글
이터레이터 패턴 (0) | 2024.06.03 |
---|---|
프록시 패턴과 프록시 서버 (0) | 2024.05.31 |
옵저버 패턴 (0) | 2024.05.30 |
팩토리 패턴 (0) | 2024.05.28 |
싱글톤 패턴 (0) | 2024.05.27 |