전략 패턴

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