2016년 4월 1일 금요일

Design Pattern Digest - 9. Strategy

이글은 책 "Java언어로 배우는 디자인 패턴 입문"을 읽고 쓴 요약입니다. 
나만 이해하도록 불친절하게 작성되어 있습니다. 
자세한 내용은 책을 보세요. 


Strategy




  • 기술적으로는 전형적인 polymorphysm이고 위임을 사용한다는 특징이 있다. 의미적으로는 알고리즘(전략)을 외부에서 정의해서 교환 가능하다는 특징이 있다.
  • Template Method나 Bridge 패턴이랑 유사. 
  • Strategy에는 전략을 수행할 execute()가 정의되어 있으며 필요하다면 내부 전략을 수립하는 데 도움이되는 feedback이나 data들을 넣어주는 메소드도 정의될 수 있다.
  • ConcreteStrategy는 보통 싱글톤으로 구현한다. 
  • 전략을 사용하는 Context는 Strategy를 사용하는데 이때 위임의 방식을 사용한다. (동일한 메소드 이름을 갖는 경우도 있다) 


댓글 없음:

댓글 쓰기