如何深入理解装饰者模式和代理模式的异同

在学习装饰者模式和代理模式时感觉这两种设计模式实现思路都是对代码进行包装,使领域对象变得更加纯粹。但是为什么会单独划分装饰者模式和代理模式并不清楚,可否有大神帮忙解惑,不胜感激

阅读 1.5k
1 个回答

装饰器注重的是功能的增强,避免使用子类继承方式进行功能扩展。
代理模式更注重控制目标的访问,给各种通知一个统一的访问入口。
感觉很多人都说代理模式的目的是功能的增强,但从设计模式那本书的原文可以看到作者的初衷其实是为了控制对象访问的入口。
原文中是这样说的:
Proxy:provide a surrogate or placeholder for another object ot control access to it.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题