"Strategy", 계획, 전략, 문제를 해결하기 위한 방법. '알고리즘'.
이 패턴은 알고리즘을 구현한 부분을 상황에 맞게 교체해서 같은 문제를 다른 방법으로 해결할수 있게 도와주는 패턴이다.

대부분 교육기관에서 가르치는 예제들은 아래와 같은 형태의 서비스 구조를 갖는다.

아래 코드에서의 strategy는 BoardDao로 보면 되겠다.

BoardServiceImpl은 BoardDao의 구현 클래스를 모르는 상태이고, BoardService가 해야할 regist, update, read 기능을 BoardDao에 위임했다.

생성자, 또는 setter메서드를 이용해서 상황에 맞게 jdbc, ibatis, hibernate를 사용할수 있는 전략을 가질수 있다.

나도 마찬가지지만, 교육기관에서 당연하듯이 저런식으로 코드를 쓰다보니 딱 저런 예제 말고 다른 로직(아파치, 오픈소스 등..)에서는 strategy패턴(등..)을 인지하지 못하고, 또 응용하지도 못한다.

어여 나도 소스를 볼줄 아는 눈을 가져야 하는데 큰일이다..;

'Design Patterns' 카테고리의 다른 글

Observer.  (0) 2012.03.17
"OCP", Open Closed Principle  (0) 2012.02.26
"LSP", Liskov Substitution Principle  (2) 2012.02.26
"ISP", Interface Segrehation Principle  (1) 2012.02.26
"DIP", Dependency Inversion Principle  (0) 2012.02.26

+ Recent posts