设计模式实现——代理模式

原创 2016年10月03日 21:38:53


代理模式简介

代理模式就是自己不愿意做,把自己的工作委托给别人来做。就像快递公司不自己送货,把货物给区域代理一样。

优点:
1、可以使自身更加安全,只把部分权限交给代理。其他所有人想知道我都必须进过代理,用于控制权限访问。
2、可以用于延时生成对象,把生成对象开销大的对象生成放缓,在初始化时只给一个null或者简单的拷贝,在使用时再具体生成。
3、可以用于智能指针,在访问对象时可以增加一些附加的操作,可以监控引用次数等。
4、为一个对象在不同的地址空间中提供局部代理。


模式对比

代理模式与适配器模式十分相似,都是将任务给第三方来处理,不同之处在于适配器为所适配的对象提供不同的接口,代理模式提供的接口是一样的。所使用的目的不同,代理是为了隐藏自己或者是为了优化性能;而适配器是为了使接口兼容。

类图



实例分析

在读取图片过程中,初始化读入时间过长,为了及时显示其他的内容,我们可以暂且不初始化图片。使用代理来操作它。

实际调用过程:

void PatternDemo(){
	MImage* image = new ImageProxy;
	image->showImage();
}



23种设计模式(6):代理模式

先看一个例子,是有关于打游戏杀怪兽的。 //先定义一个游戏者接口 public interface IGamePlayer { //登陆游戏 public void logi...
  • psp0001060
  • psp0001060
  • 2016年02月04日 22:05
  • 939

JAVA设计模式之代理模式

【代理模式应用场景举例】 比如在玩“极品飞车”这款游戏,如果游戏者手中的金钱达到了一定的数量就可以到车店买一部性能更高的赛车,那么这个卖车的“车店”就是一个典型的“汽车厂家”的“代理”,他为汽车厂家...
  • jason0539
  • jason0539
  • 2014年04月05日 07:07
  • 23505

设计模式:代理模式和反射原理

代理模式:为其他对象提供一种代理以控制对这个对象的访问。 Proxy和RealSubject类共同实现了Subject接口,这样一来,在任何地方使用RealSubject类的地方就可以使用P...
  • xiaokui008
  • xiaokui008
  • 2012年03月05日 20:20
  • 7206

Java设计模式——代理模式实现及原理

简介 Java编程的目标是实现现实不能完成的,优化现实能够完成的,是一种虚拟技术。生活中的方方面面都可以虚拟到代码中。代理模式所讲的就是现实生活中的这么一个概念:中介。 代理模式的定义:给某一个对象提...
  • Goskalrie
  • Goskalrie
  • 2016年09月07日 13:43
  • 21362

【设计模式】代理模式详解

前言 博主只是一名大三学生,文章内容难免有不足之处,欢迎批评指正。   正文 转载请注明出处: http://blog.csdn.net/h28496/article/details/46707621...
  • H28496
  • H28496
  • 2015年07月01日 10:45
  • 1381

【设计模式】--代理模式 (Proxy模式)

在软件系统中,我们无时不在跨越障碍,当我们访问网络上一台计算机的资源时,我们正在跨越网络障碍;当我们去访问服务器上数据库时,我们又在跨越数据库访问障碍,同时还有网络障碍。跨越这些障碍有时候是非常复杂的...
  • YYZZHC999
  • YYZZHC999
  • 2017年01月21日 20:24
  • 360

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

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

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

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

最常用的设计模式---代理模式(C++实现)

代理模式:为其他对象提供一种代理以控制对这个对象的访问
  • lh844386434
  • lh844386434
  • 2014年01月09日 17:23
  • 2057

六 设计模式之代理模式(或称委托模式)

定义   为其它对象提供一种代理以控制对这个对象的访问类图通用代码 抽象主题类 public interface Subject { public void request(); } 真实主...
  • guojun828
  • guojun828
  • 2011年01月20日 23:26
  • 7171
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式实现——代理模式
举报原因:
原因补充:

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