代理模式有点像老大和小弟,也有点向分销商。主要解决的问题是为某些资源的访问、对象的类易用操作上提供方便使用的代理服务。而这种设计思想的模式经常会出现在系统中,或者组件中,它们都提供给我们一种非常简单易用的方式控制原本需要编写很多代码进行使用的服务类。
class Subject
{
public:
Subject(){}
virtual ~Subject() {}
virtual void show() {}
};
class RealSubject : public Subject
{
public:
RealSubject() {}
~RealSubject() {}
void show(){}
};
class Proxy : public Subject
{
public:
Proxy() { rs = nullptr; }
~Proxy() { delete rs; }
void show()
{
if (rs == nullptr)
rs = new RealSubject();
rs->show();
}
private:
RealSubject* rs;
};
int main()
{
Subject* subject = new Proxy();
subject->show();
return 0;
}
代理模式的设计可以让代码更加整洁干净易于维护