UML图


代码:
#include <iostream>
#include <list>
using namespace std;
class Target{
public:
virtual void Request(){
cout << "Target:普通请求" << endl;
}
};
class Adaptee{
public:
void SpecificRequest(){
cout << "Adaptee:特殊请求" << endl;
}
~Adaptee(){
cout << "delete Adaptee" << endl;
}
};
class Adapter:public Target
{
public:
Adaptee *adaptee;
Adapter(){
adaptee = new Adaptee();
}
void Request(){
adaptee->SpecificRequest();
}
~Adapter(){
cout << "delete Adapter" << endl;
delete adaptee;
}
};
int main(void){
Target *t1 = new Target();
t1->Request();
Target *t2 = new Adapter();
t2->Request();
return 0;
}
结果
Target:普通请求
Adaptee:特殊请求