AOP 切面编程思想

AOP思想 - 切面思想 Aspect Oriented Programming

面向对象 OOP设计原则是:

把应用程序分解成若干的对象
高内聚
弱耦合

比如说,

应用程序里很多业务逻辑都要在操作之初进行“权限检查”,在操作之后进行“日志记录”,

如果直接把处理这些操作的代码加入到每个模块中,那么无疑破坏了OOP的“单一职责”原则,模块的可重用性会大大降低,

这时候传统的OOP设计往往采取的策略是加入相应的代理(Proxy)层来完成系统的功能要求,但这样的处理明显使系统整体增加了一个层次的划分,复杂性也随之增加,从而给人过于厚重的感觉

为了处理上面的问题,AOP(面向方面编程:Aspect-Oriented Programming)思想应运而生了,

假设把应用程序想成一个立体结构的话,OOP的利刃是纵向切入系统,把系统划分为很多个模块(如:用户模块,文章模块等等),

而AOP的利刃是横向切入系统,提取各个模块可能都要重复操作的部分(如:权限检查,日志记录等等)。

由此可见,AOP是OOP的一个有效补充。

原文地址:https://www.cnblogs.com/fangdada/p/14783851.html