와챠의 우당탕탕 코딩 일기장

[JAVA 디자인 패턴] - 6, Strategy 패턴 본문

코딩 일기장/JAVA 디자인 패턴

[JAVA 디자인 패턴] - 6, Strategy 패턴

minWachya 2020. 11. 9. 17:51
반응형

Strategy Pattern

 

Strategy 패턴은 알고리즘을 쉽게 교체할 수 있는 패턴이다.

 

예제로는 플레이어가 레벨 1일 때는 쉬운 공격을 하고,

레벨 2일때는 어려운 공격을 하는 코드를 짜 봤다.

 

Strategy 패턴의 클래스 다이어그램

  • Strategy 인터페이스 = 레벨에 따라 다른 공격을 구현하게 함
    • Level 1 클래스 = 레벨 1의 공격인 쉬운 알고리즘 구현
    • Level 2 클래스 = 레벨 2의 공격인 어려운 알고리즘 구현
    • (※원래는 attack에 알고리즘이 들어가야 하는데 간단하게 표현하고자 생략)
  • Player 클래스 = 플레이어를 나타내는 클래스

 

실행 결과

 

장점

Player 클래스에 구체적인 Strategy 클래스(Level 1, Level 2)는 보이지 않는다.

Strategy의 일이 필요할 때엔 필드인 strategy에게 위임(◇) 하기 때문에

알고리즘을 유연하게 교체할 수 있다.

 

활용 :

  • 빠른 알고리즘을 찾기 위해 알고리즘마다 시간을 재기
  • 각 프로그램에 맞는 알고리즘으로 교체하기

 

 

JAVA 언어로 배우는 디자인 패턴 입문(p 179~191) 참고

반응형
Comments