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

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


代理模式简介

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

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


模式对比

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

类图



实例分析

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

实际调用过程:

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



相关文章推荐

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

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

设计模式C++实现(8)——代理模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最...

设计模式C++实现(8)——代理模式

转自:http://blog.csdn.net/wuzhekai1985 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装...

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

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

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

转载自: http://blog.csdn.net/wuzhekai1985        软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要...
  • phiall
  • phiall
  • 2015年06月08日 09:48
  • 266

Java设计模式——代理模式实现及原理(基于java8)

简介 Java编程的目标是实现现实不能完成的,优化现实能够完成的,是一种虚拟技术。生活中的方方面面都可以虚拟到代码中。代理模式所讲的就是现实生活中的这么一个概念:中介。 代理模式的定义:给...

设计模式——代理模式实现与原理分析

代理模式也称为委托模式,也是极为重要的设计模式之一。代理在我们日常生活中其实很常见,对于程序员来说最常接触的莫过于使用代理上网,连接上代理服务器地址,就可以轻松畅游全世界的网络;让同事帮忙带饭也是一种...

设计模式C++实现(8)——代理模式

原文链接 点击打开链接 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,...

我所理解的设计模式(C++实现)——代理模式(Proxy Pattern)

概述 作为C++工程师,免不了要管理内存,内存管理也是C++中的难点,而智能指针采用引用计数的办法很方便的帮我们管理了内存的使用,极大方便了我们的工作效率。而智能指针的这种用法其实就是代理模式的...

设计模式C++实现(8)——代理模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式实现——代理模式
举报原因:
原因补充:

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