代理模式 - 内容简介

本章主要介绍代理模式。代理模式指的是,通过为另一个对象昂提供替身或者占位符的方式,控制对这个对象的访问。其一般通过和被代理对象实现共同的接口,调用内部保存的被代理对象实例返回这些接口提供的服务。服务请求方只和代理进行交互。这种模式广泛应用于需要保证安全、轻量的场合,比如金融和网络。典型的代理模式是RMI,本地的客户端通过调用Stub类来访问远程服务,这个Stub类就是远程对象的代理。

代理模式从类别上看,属于统一接口的设计模式。和其比较类似的有:装饰器模式。它们都是通过保存一个实例对象,和被委托对象实现相同的接口,然后委托这个对象的方法来提供自己的服务。其目的都是为了改变责任。但是区别在于,装饰器一般通过构造器传入实例,并且一般添加一些责任。其一般实现了实例对象所有的方法。但是代理模式则仅仅提供和委托对象协商好的有限的方法,并且其提供的服务是为了减小责任,目的不是添砖加瓦,而是限制访问。其也可以通过方法参数传入对象,而装饰器更多通过构造器传入对象。

这里还需要区分一下统一接口和提供服务。代理模式和策略模式很像,区别在于策略模式没有对接口进行修剪,因此后者属于提供服务,而前者属于统一接口的范畴。统一接口的定义是,组合+接口变更,对于抽像工厂和外观模式这种,很容易看出来它们只是提供了标准,而不涉及服务提供。但是,像代理模式、组合模式这类,其从概念上属于统一接口,但是目的更偏向提供服务。为了方便起见,仍旧分配在统一接口类别中。对于提供服务,这里的定义是,对于其中的组合类别,提供服务不涉及接口的变更,比如策略模式和状态模式。

最后更新于 2018-09-10 查看笔记