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—保存一个引用使得代理可以访问实体。