代理模式是一种访问中间媒介,其最大的好处在于实现了逻辑与实现的彻底解耦。
代理类型
- 远程代理
- 虚代理
- 保护代理
- 智能指针
结构图
示例代码
class SubObject
{
public:
virtual void Request() = 0;
};
class ConCreateSubObject :public SubObject
{
public:
virtual void Request()override
{
}
};
class Proxy
{
public:
void Request()
{
sub->Request();
//do something else
}
Proxy(SubObject *sub)
{
this->sub = sub;
}
private:
SubObject *sub;
};
int main(int argc, char *argv[])
{
Proxy *proxy = new Proxy(new ConCreateSubObject);
proxy->Request();
system("pause");
return 0;
}