装饰者模式与代理模式的区别

在学动态代理时,突然想到之前学过的装饰者模式。发现这两者相似性很大,由此探究两者之间的区别。

翻阅网上许多资料,总结:

两者之间主要的区别:装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。换句话说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。而当我们使用装饰器模式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。

猜你喜欢

转载自blog.csdn.net/qq_34170352/article/details/80288814