概念解读
文字解读
代理,顾名思义就是帮助别人做事,GoF(《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为“四人组(Gang of Four)”)对代理模式的定义如下:
代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 代理模式使得代理对象控制具体对象的引用。代理几乎可以是任何对象:文件,资源,内存中的对象,或者是一些难以复制的东西。
作用和主意事项
作用
- 远程代理(一个对象将不同空间的对象进行局部代理)。
- 虚拟代理(根据需要创建开销很大的对象如渲染网页暂时用占位代替真图)。
- 安全代理(控制真实对象的访问权限)。
- 智能指引(调用对象代理处理另外一些事情如垃圾回收机制)。
注意事项
不能滥用代理,有时候仅仅是给代码增加复杂度。
代码实战
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
题外话:代理模式跟中介者模式的区别
- 代理模式有以下特点:
- 一对一,这个代理只能代表一个对象。
- 只能代表一方,PB是B的代理,A可以通过PB访问B,但是B不能通过PB访问A。
- 中介者模式有以下特点:
- 多对多,这些被管理的对象都可以通信,它们的业务关系应该是交织在一起的。
- A能够通过中介访问B,B也能够通过中介访问A
以上信息来自极客学院的视频观看,属于个人记录,以及添加了一些个人理解。