// 应用场景:双方都不适合修改的时候,可以考虑使用适配器模式;
// 说明:客户所期待的接口 [8/11/2016 ZOSH]; class Target { public: Target(void); ~Target(void); virtual void Request() { cout<<"普通的请求"<<endl; } };
// 说明:需要适配的类 [8/11/2016 ZOSH]; class Adaptee { public: Adaptee(void); ~Adaptee(void); public: void SpecificalRequest() { cout<<"特殊请求"<<endl; } };
#include "Target.h" #include "Adaptee.h" // 适配器 class Adapter : public Target { public: Adapter(); ~Adapter(); public: void Request() { ada->SpecificalRequest(); } private: Adaptee* ada; };
// 客户端
#include "Adapter.h" // 适配器模式:将一个类的接口转换为客户希望的另外一个类的接口; // 解释:双方都不适合修改的时候,可以考虑使用适配器模式; int _tmain(int argc, _TCHAR* argv[]) { Target * ada = new Adapter(); ada->Request(); delete ada; return 0; }