注:重看了以前自己写的设计莫式,总感觉代码太多,掩盖了问题的实质。从本文开始,将会一切从简。
1.类适配器模式UML图:
2.实现代码:
class Taget
{
public:
virtual void request(){cout<<"Taget::request()"<<endl;}
};
class Adaptee
{
public:
void specificRequest(){cout<<"Adaptee::specificRequest()"<<endl;}
};
class Adapter:public Taget,private Adaptee
{
virtual void request(){specificRequest();}
};
int main ()
{
Taget *Ptgt=new Adapter();
Ptgt->request();
return 0;
}
运行结果: