您的位置:首页 > 编程语言 > C语言/C++

c++设计模式之代理模式

2016-12-10 22:43 225 查看
代理模式为另一个对象提供了一个替身或占位符以控制对这个对象的访问

使用代理模式创建代表对象, 让代表对象控制某对象的访问, 被代理的对象可以是远程的对象, 创建开销大的对象或需要安全控制的对象

代理模式结构上类似于装饰者模式



#ifndef Proxy_h
#define Proxy_h

#include <string>
using std::string;

class Subject
{
public:
virtual void request() = 0;
};

class RealSubject : public Subject
{
public:
virtual void request()
{
printf("RealSubject request.\n");
}
};

class Proxy : public Subject
{
public:
Proxy(Subject *s) : subject(s) { }
virtual void request()
{
subject->request();
}
private:
Subject *subject;
};

#endif


测试

#include <iostream>

#include "Proxy.h"

int main(int argc, char **argv)
{
RealSubject realSubject;
Proxy proxy(&realSubject);
proxy.request();

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息