AOP背后的基本设计模式是什么?

Nil*_*esh 3 design-patterns

如果今天有人提出这个有趣的问题,那么从Proxy到Wrapper到Decorator的争论各不相同.

思考?

Pét*_*rök 10

简短说明

  • 代理:"为另一个对象提供代理或占位符以控制对它的访问".*
  • 装饰者:"动态地附加对象的附加职责."*
  • Adapter(Wrapper):"将类的接口转换为客户期望的另一个接口."*

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

*来自GoF书.


S.L*_*ott 7

"从代理到封装到装饰者的争论各不相同."

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

如果它可以简化为单一的设计模式,那么它在创意市场中就不会持久.

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