摘要:
意图:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。class Target{public: Target() {} virtual ~Target() {} virtual void Request() { cout<<"Target::Request()"<<endl; }};class Adaptee{public: Adaptee() {} ~Adaptee() {} void SpecificRequest() { cout... 阅读全文
摘要:
意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。class Singleton{public: static Singleton* Instance() { if(_instance == NULL) { // ScopedLock lock; if(_instance == NULL) { _instance = new Singleton(); } } return _instance; }protected: ... 阅读全文
摘要:
意图:提供一个通过拷贝已存在对象进行新对象创建的接口。class Prototype{public: Prototype() {} virtual ~Prototype() {} virtual Prototype* Clone() = 0;};class ConcretePrototype: public Prototype{public: ConcretePrototype(const string& str) { this->content = str; } ConcretePrototype(const Concret... 阅读全文
摘要:
意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。class Builder{public: Builder() {} virtual ~Builder() {} virtual void BuilderPartA(const string& str) = 0; virtual void BuilderPartB(const string& str) = 0; virtual string GetResult() { return product; }protected: string pr... 阅读全文
摘要:
意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。class AbstractProductA{public: AbstractProductA() {} virtual ~AbstractProductA() {}};class AbstractProductB{public: AbstractProductB() {} virtual ~AbstractProductB() {}};class AbstractFactory{public: AbstractFactory() {} virtual ~... 阅读全文
摘要:
意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到其子类。class Product{public: Product() {} virtual ~Product() {}};class ConcreteProductA: public Product{public: ConcreteProductA() {} ~ConcreteProductA() {}};class ConcreteProductB: public Product{public: ConcreteProductB() {} ~C... 阅读全文