JAVA面向对象与设计模式 - 图文 下载本文

3.2.3 Bridge:适用性及参与者

适用性:

你不希望在抽象和它的实现部分之间有一个固定的绑定关系。例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换。类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。这时B r i d g e模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充。

对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译。

3.2.3 Bridge模式的UML类图07/07/13

36

3.2.4 Proxy(代理模式)

1. 意图

为其他对象提供一种代理以控制对这个对象的访问。2. 别名

Surrogate3. 动机

对一个对象进行访问控制的一个原因是为

3.2.4 Proxy:适用性和参与者

适用性:

远程代理( Remote Proxy ) 为一个对象在不同的地址空间提供局部代表。

虚代理(Virtual Proxy)根据需要创建开销很大的对象。在动机一节描述的ImageProxy就是这样一种代理的例子。

保护代理(Protection Proxy)控制对原始对象的访问。保护代理用于对象应该有不同的访问权限的时候。

智能指引(Smart Reference)取代了简单的指针,它在访问对象时执行一些附加操作。(C++智能指针:auto_ptr)

参与者:

Proxy—保存一个引用使得代理可以访问实体。