什么是AOP编程?

什么是AOP编程?

AOP是OOP的延续,是Aspect Oriented Programming的缩写,直译意思:面向方面编程、面向切面编程。

 

AOP通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。可以在代码阶段实现分离关注,实现松耦合,然后在运行时将相关动作特征植入运行,从而改变程序的运行顺序,达到拦截或者增加功能的目的。

 

常见框架:VirtualXposed

 

下面先说AOP是什么样的思想,我们一步一步慢慢来,先看一下传统程序的流程,比如银行系统会有一个取款流程

什么是AOP编程?_第1张图片

 

 

我们可以把方框里的流程合为一个,另外系统还会有一个查询余额流程,我们先把这两个流程放到一起:

有没有发现,这个两者有一个相同的验证流程,我们先把它们圈起来再说下一步:

什么是AOP编程?_第2张图片

 

有没有想过可以把这个验证用户的代码是提取出来,不放到主流程里去呢?这就是AOP的作用了。有了AOP,写代码时可以专注业务逻辑而不用考虑验证用户步骤,写完之后,调用其他地方已经写好验证用户的代码,把这段代码加到哪几个地方,而不要你自己Copy过去。

       这里还是两个地方,如果你有多个控制流呢,这个写代码的方法可以大大减少你的时间,不过AOP的目的不是这样,这只是一个“副作用”,真正目的是:你写代码的时候,事先只需考虑主流程,而不用考虑那些不重要的流程。

 

懂C的都知道,良好的风格要求在函数起始处验证参数,如果在C上可以用AOP,就可以先不管校验参数的问题,事后使用AOP就可以隔山打牛的给所有函数一次性加入校验代码,而你只需要写一次校验代码。

 

你可能感兴趣的:(aop)