Strategy pattern
8월 4, 2009
댓글 남기기

[의도]
- 알고리즘군이 존재할 경우 각각의 알고리즘을 별도의 클래스로 캡슐화하고 이들을 상호 교환 가능한 것으로 정의한다. Strategy 패턴은 클라이언트에 영향을 주지 않고 독립적으로 알고리즘을 다양하게 변경할 수 있게 한다.
class CBase
{
public:
CBase(){};
virtual ~CBase(){};
virtual BOOL Foo() = 0;
};
class CDerivedA : public CBase
{
public:
CDerivedA(){};
~CDerivedA(){};
BOOL Foo(){return TRUE;};
};
class CDerivedB : public CBase
{
public:
CDerivedB(){};
~CDerivedB(){};
BOOL Foo(){return TRUE;};
};
// main
CBase * base;
base = new CDerivedA;
base->foo();
delete base;
base = new CDerivedB;
base->foo();
delete base;