转载:http://www.cnblogs.com/onlywujun/archive/2013/03/28/2985887.html
装饰模式:以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案;
代理模式:给一个对象提供一个代理对象,并有代理对象来控制对原有对象的引用;
理解:装饰模式,可以让调用者(客户端)具体指定或者实例化代理者,替代继承,多以组合形式扩展。
代理模式,代理对象内部已经实例化好了代理者,更关注于方法即可。
装饰器模式关注于在一个对象上动态地添加方法,然而代理模式关注于控制对对象的访问。
用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。(客户,指的是调用者)
用装饰器模 式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。
使用代理模式,代理和真实对象之间的的关系通常在编译时就已经确定了,而装饰者能够在运行时递归地被构造。
代理模式案例:AIDL和Binder的跨进程通讯
参阅:
代理模式 vs. 装饰模式