第8章 代理(Proxy)模式

    有时候,需要对实际对象的访问进行控制,我们把这层访问控制封装成一个新的代理对象来代替实际对象,交由客户对象直接访问,由此引入代理模式。

    本章将讨论代理模式,主要包含如下内容:

    通过介绍分布式对象的原理,讲解静态代理模式。

    使用J2SE动态代理。

    和装饰器模式的比较。

    8.1 代理(Proxy)模式

    代理(Proxy)模式经常在以下情景中使用。

    代理一些开销很大的对象,这样便能迅速返回,进行其他操作,只有在真正需要时才去实例化。

    安全控制、同步控制,缓存处理结果,缓存初始化开销很大的对象,统计对象的使用以及异常处理等方面。

    分布式对象访问控制,使得客户对象像使用本地对象一样使用分布式对象。

    8.1.1 类图

    为了保证客户对象透明地使用代理对象,代理类和实际类具有一致的接口,UML静态类图如图8-1所示。

    figure_0128_0120

    图8-1