Command pattern http://en.wikipedia.org/wiki/Command_pattern .......In object-oriented programming, the Command pattern is a design pattern in which objects are used to represent actions. A command object encapsulates an action and its parameters......... Papers/Design pattern 2008.10.14
facade pattern http://en.wikipedia.org/wiki/Facade_pattern mediator pattern과 비슷하다고 생각된다. 내용중에 A facade is an object that provides a simplified interface to a larger body of code, such as class library. Papers/Design pattern 2007.12.18
proxy pattern http://en.wikipedia.org/wiki/Proxy_pattern ex) 임의의 super class는 sub class1 그리고 sub class2를 가진다. 이때 sub class1은 proxy 로 지정될 수 있다. 그리고 sub class2에 대한 접근은 항시 sub class1을 통해서 이루어진다. 이는 log on/off 시나리오에서 일반적으로 적용될 수 있다. 즉, proxy는 사용자의 id, passwd를 입력받아 real cla.. Papers/Design pattern 2007.12.18
mediator pattern http://en.wikipedia.org/wiki/Mediator_pattern 내용중에 The mediator pattern consists of a mediator class that is the only class that has detailed knowledge of the methods of other classes. Papers/Design pattern 2007.12.18
Flyweight pattern http://en.wikipedia.org/wiki/Flyweight_pattern singleton pattern이 unique한 instance를 사용하기 위한 방안이라면 flyweight pattern은 유한개의 instance를 pool에 넣어서 가장 optimize하게 memory size를 관리하는 방안이다. Papers/Design pattern 2007.12.18
Delegation pattern http://en.wikipedia.org/wiki/Delegation_pattern #include <iostream> using namespace std; class I { public: virtual void f() = 0; virtual void g() = 0; virtual ~I() {} }; class A : public I { public: void f() { cout << "A: doing f()" << endl; } void g() { cout << "A: doing g()" << endl; } ~A() { cout << "A: cleaning up." << endl; } }; class B : public I .. Papers/Design pattern 2007.09.29
visitor pattern http://www.refactoring.com/catalog/replaceConditionalWithVisitor.pdf http://en.wikipedia.org/wiki/Visitor_pattern 위의 링크 설명을 참조한다. 이해를 돕기 위해 부연하면 Visitor와 Visiable이란 클래스가 등장한다. 그리고 Visitable에는 구현하고자 하는 객체를 대표하는 subclass들이 inherit된다. Visitor에는 Visitable의 subclass들의 상태에 .. Papers/Design pattern 2007.09.02
factory method class shape { public: shape() {}; ~shape() {}; virtual void draw() = 0; }; class square : public shape { public: square() {}; ~square() {}; void draw() { cout << "square is drawn\n" << endl; } }; class circle : public shape { public: circle() {}; ~circle() {}; void draw() { cout << "circle is drawn\n" << endl; } }; int main() { shape* pShape = (circle*)new circle(); pSha.. Papers/Design pattern 2007.07.08
singleton pattern http://kin.naver.com/db/detail.php?d1id=1&dir_id=10104&eid=1BbZUk7+wLYZQSFq/JXluGoYAQY8cfYm&qb=c2luZ2xldG9u #include class CMediator { public: static CMediator* GetInstance() { return &mInst; } void Execute(); private: CMediator() { m_I = 0; } static CMediator mInst; int m_I; }; CMediator CMediator::mInst; void CMediator::Execute() { cout << "싱글톤 예제" << endl; cout <<.. Papers/Design pattern 2007.07.07