代理模式:一个类别作为另一个类别的接口,实现逻辑与实现的分离。
#include <iostream>
using namespace std;
class Image
{
public:
virtual ~Image(){};
virtual void show()=0;
protected:
Image(){}
};
class BigImage:public Image
{
public:
BigImage(){}
void show(){cout<<"显示大图 "<<endl;}
};
class ImageProxy
{
public:
ImageProxy(Image *i){image=i;}
void show()
{
image->show();
}
private:
Image *image;
};
int main()
{
Image *i=new BigImage();
ImageProxy *p=new ImageProxy(i);
p->show();
delete p;
delete i;
}