注意和Adapter 的区别,这个两个有共用的基类
和Decade很相似,只不过一个的功能是增加新的, 一个是代理。
# pragma once
#include <iostream>
using namespace std;
class Subject
{
public:
virtual ~Subject() {};
virtual void Request()=0 ;
protected:
Subject() {};
};
class ConcreteSubject: public Subject
{
public:
ConcreteSubject() {};
~ConcreteSubject() {};
virtual void Request()
{
cout<<"ConcreteSubject"<<endl;
}
};
class Proxy: public Subject
{
public:
Proxy() { su=NULL;};
~Proxy()
{
delete su;
su=NULL;
}
void Request()
{
Subject* su=new ConcreteSubject();
su->Request();
}
private:
Subject* su;
};
int main(int argc, char* argv[])
{
Proxy* pr= new Proxy();
pr->Request();
return 0;
}

本文通过一个简单的C++示例介绍了代理模式的基本概念及其实现方式。代理模式允许在客户端与目标对象之间提供一个中介,用于控制对目标对象的访问。文中通过Subject抽象主题类,ConcreteSubject真实主题类以及Proxy代理类来展示这种模式。
1465

被折叠的 条评论
为什么被折叠?



