第8章 代理(Proxy)模式
有时候,需要对实际对象的访问进行控制,我们把这层访问控制封装成一个新的代理对象来代替实际对象,交由客户对象直接访问,由此引入代理模式。
本章将讨论代理模式,主要包含如下内容:
通过介绍分布式对象的原理,讲解静态代理模式。
使用J2SE动态代理。
和装饰器模式的比较。
8.1 代理(Proxy)模式
代理(Proxy)模式经常在以下情景中使用。
代理一些开销很大的对象,这样便能迅速返回,进行其他操作,只有在真正需要时才去实例化。
安全控制、同步控制,缓存处理结果,缓存初始化开销很大的对象,统计对象的使用以及异常处理等方面。
分布式对象访问控制,使得客户对象像使用本地对象一样使用分布式对象。
为了保证客户对象透明地使用代理对象,代理类和实际类具有一致的接口,UML静态类图如图8-1所示。
图8-1