设计模式读书笔记:Proxy(代理)

原创 2015年07月10日 17:23:50

意图:

为其他对象提供一种代理以控制对这个对象的访问。

结构图:来自 《23种设计模式 - 郗晓勇》


实现:https://github.com/panshiqu/patterns/tree/master/Proxy

Subject

namespace NS_PROXY {

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

} /* namespace NS_PROXY */
RealSubject

#include <iostream>

namespace NS_PROXY {

class RealSubject {
public:
	RealSubject() {}
	virtual ~RealSubject() {}
	virtual void Request(void)
	{
		std::cout << "Request RealSubject." << std::endl;
	}
};

} /* namespace NS_PROXY */
Proxy

#include "RealSubject.h"

namespace NS_PROXY {

class Proxy {
public:
	Proxy() : _realSubject(0) {}
	virtual ~Proxy()
	{
		if (_realSubject != 0)
			delete _realSubject;
	}
	virtual void Request(void)
	{
		if (_realSubject == 0)
			_realSubject = new RealSubject();

		_realSubject->Request();
	}

private:
	RealSubject *_realSubject;
};

} /* namespace NS_PROXY */
main

#include "Proxy/Proxy.h"
using namespace NS_PROXY;
int main(void)
{
	Proxy p;
	p.Request();
}
附加:
版权声明:本文为博主原创文章,未经博主允许不得转载。

设计模式:代理模式(Proxy)

代理模式:为其他对象提供一种代理以控制对这个对象的访问。 代理模式中的角色: 抽象主题角色(Subject):声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对...
  • u013256816
  • u013256816
  • 2016年03月29日 21:38
  • 4377

设计模式(结构型)之代理模式(Proxy Pattern)

代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。根据代理模式...
  • yanbober
  • yanbober
  • 2015年05月04日 18:48
  • 5687

设计模式总结之Proxy Pattern(代理模式)

为其他对象提供一种代理以控制对这个对象的访问。
  • cooldragon
  • cooldragon
  • 2016年08月11日 00:50
  • 1244

简话设计模式之Proxy-Stub模式

从Proxy设计模式到Proxy-Stub
  • u012604322
  • u012604322
  • 2014年01月10日 10:07
  • 2750

aidl用到的设计模式--Proxy代理模式

aidl用到的是远程代理模式,为客户端隐藏了IPC的细节。让客户端感觉好像拿到了一个服务器端对象的句柄。 ------------------------------- IGreetServi...
  • safsasasa
  • safsasasa
  • 2014年01月10日 16:48
  • 1325

程序设计模式(十二) C++ 代理(Proxy)模式

2.7 Proxy 代理模式为其他对象提供一种代理以控制对这个对象的访问。 在需要用比较通用和复杂的对象指针代替简单的的指针的时候,使用代理模式。有四种常用的情况:        1、远程...
  • llg070401046
  • llg070401046
  • 2017年05月25日 09:39
  • 262

代理(Proxy)模式 vs. 代理(Agency)机构

有一天,我将设计模式中的代理模式和我们社会中的代理机构联系起来。发现他们之间有非常多的相似的地方,而且可以互相借鉴。在讨论这个话题之前,我的老板就率先指出了我的缺点。代理是Proxy不是Agency。...
  • xiammy
  • xiammy
  • 2007年03月17日 21:46
  • 3310

Adapter和Proxy两种设计模式

Normal 0 7.8 磅 0 2 false false false Microsof...
  • wangzwhu
  • wangzwhu
  • 2008年12月09日 15:59
  • 1268

设计模式之动态代理(dynamic proxy)

1 动态代理与静态代理我们从上一篇设计模式之代理模式一文中已经知道,在代理模式中代理对象和被代理对象一般实现相同的接口,调用者与代理对象进行交互。代理的存在对于调用者来说是透明的,调用者看到的只是接口...
  • suifeng3051
  • suifeng3051
  • 2016年05月26日 15:16
  • 1971

Java设计模式-代理模式之动态代理(附源码分析)

Java设计模式-代理模式之动态代理(附源码分析) 动态代理概念及类图 上一篇中介绍了静态代理,动态代理跟静态代理一个最大的区别就是:动态代理是在运行时刻动态的创建出代理类及其对...
  • yujin753
  • yujin753
  • 2015年06月26日 17:37
  • 2255
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式读书笔记:Proxy(代理)
举报原因:
原因补充:

(最多只允许输入30个字)