#include <iostream>
#include <string>
using namespace std;
class target
{
public:
target(){}
virtual ~target(){}
virtual void request()
{
cout<< "target::request()" <<endl;
}
};
class adaptee
{
public:
adaptee(){}
~adaptee(){}
void specific_request()
{
cout <<"adaptee::specific_request()" <<endl;
}
};
class adapter : public target, private adaptee
{
public:
adapter(){}
~adapter(){}
void request()
{
specific_request();
}
};
class adapter2 : public target
{
public:
adapter2(adaptee *ad):_ad(ad){}
~adapter2(){ if (_ad != NULL) delete _ad; }
void request()
{
if (_ad != NULL)
_ad->specific_request();
}
private:
adaptee *_ad;
};
int main()
{
adapter ada1;
ada1.request();
adapter2 ada2(new adaptee);
ada2.request();
return 0;
}
adapter适配器模式
最新推荐文章于 2013-12-23 08:59:45 发布