代理模式vs装饰器模式

对装饰器模式来说,装饰者(decorator)和被装饰者(decoratee)都实现同一个接口。
对代理模式来说,代理类(proxy class)和真实处理的类(real class)都实现同一个接口。

粗看下来, 感觉二者实现的是相同的功能. 都是对类方法的扩展.他们之间的区别:

  1. 装饰器模式是对自身的方法进行扩展, 而代理模式是对其他对象的方法进行扩展.
  2. 装饰器模式是静态的, 代理模式可以是动态的.
  3. 装饰器模式是透明的, 代理模式是不透明的.
  4. 装饰器模式是继承的一个特例, 而代理模式是继承的一个延伸.
  5. 装饰器模式关注于对象的增强, 而代理模式关注于对象的控制.
  6. 装饰器模式可以和装饰器模式互相装饰, 而代理模式不行.

文章标题:代理模式vs装饰器模式

本文作者:zhu8fei

发布时间:2024-08-15, 16:57:52

最后更新:2024-08-16, 15:36:44

原始链接:http://www.zhu8fei.com/2024/08/15/proxy-vs-ecorator.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 zhu8fei@163.com

目录
×

喜欢就点赞,疼爱就打赏