티스토리 뷰

범용 적으로 사용 될 수 있는 알고리즘을 독립적인 클래스로 구성하고, 해당 클래스를 선택적으로 사용할 수 있게 하는 것을 스트래티지 패턴이라고 합니다.

스테이트 패턴과 비슷한 점이 많은 패턴이지만, 범용적으로 사용 될 수 있는 알고리즘을 독립시킨다는 점에서 차이가 있습니다.


class Sort { public: virtual void Sort(int * pScore) = 0; }; class BubbleSort : public Sort { public: virtual void Sort(int *pScore) { //버블정렬 } }; class QuickSort : public Sort { public: virtual void Sort(int *pScore) { //퀵정렬 } }; class Score { Sort* m_pSort; public: void SetSort(Sort *pSort){m_pSort = pSort;} void Sort() { if(m_pSort) { m_pSort->Sort(); } } };


'Software Engineering > Design Pattern' 카테고리의 다른 글

플라이웨이트 패턴 (Fly Weight)  (0) 2008.02.09
프록시 패턴 (Proxy)  (0) 2008.02.09
스테이트 패턴 (State)  (2) 2008.02.05
컴포지트 패턴 (Composite)  (0) 2008.02.05
이터레이터 패턴 (Iterator)  (0) 2008.02.05
댓글