在学动态代理时,突然想到之前学过的装饰者模式。发现这两者相似性很大,由此探究两者之间的区别。
翻阅网上许多资料,总结:
两者之间主要的区别:装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。换句话说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。而当我们使用装饰器模式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。
在学动态代理时,突然想到之前学过的装饰者模式。发现这两者相似性很大,由此探究两者之间的区别。
翻阅网上许多资料,总结:
两者之间主要的区别:装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。换句话说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。而当我们使用装饰器模式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。