AOP背后的底层设计模式是什么?

发布于 2024-10-17 11:19:50 字数 50 浏览 1 评论 0原文

今天有人问这个有趣的问题,从代理到包装到装饰器,争论各不相同。

想法?

Had this interesting question being asked today and the arguments varied from Proxy to Wrapper to Decorator.

Thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

圈圈圆圆圈圈 2024-10-24 11:19:50

的简短描述

  • 代理
  • :“为另一个对象提供代理或占位符以控制对其的访问”。* 装饰器:“动态地将附加职责附加到对象。”*
  • 适配器(包装器):“将一个类的接口转换为客户期望的另一个接口。”*

基于此,对我来说,AOP 看起来像(解决问题的解决方案)装饰器而不是代理 -绝对不是适配器。

*摘自《GoF》一书。

The short description of

  • Proxy: "Provide a surrogate or placeholder for another object to control access to it".*
  • Decorator: "Attach additional responsibilities to an object dynamically."*
  • Adapter (Wrapper): "Convert the interface of a class into another interface clients expect."*

Based on this, to me AOP looks like (a solution to the problem solved by) Decorator rather than Proxy - and definitely not Adapter.

*From the GoF book.

呆橘 2024-10-24 11:19:50

“从代理到包装器再到装饰器,参数各不相同。”

正确的。这就是为什么他们给它一个新名称——面向方面编程——而不仅仅是一个 OOP 设计模式。

如果它可以简化为单一的设计模式,它就不会在创意市场上持续太久。

关键是要采取更广泛的观点。

"the arguments varied from Proxy to Wrapper to Decorator."

Correct. That's why they give it a new name -- Aspect-Oriented Programming -- not just an OOP design pattern.

If it could be reduced to a single design pattern, it wouldn't last long in the marketplace of ideas.

The point is to take viewpoint that's a bit more broad.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文