本文共 600 字,大约阅读时间需要 2 分钟。
AOP(Aspect Oriented Programming),也称为面向切面编程,是OOP的一种延续,目的就是将与主业务无关的事情放到代码外去做,尽可能减少代码臃肿,并减少代码的重复部分。OOP通过继承大幅度的减少了类中重复的代码,AOP通过切面减少了方法外或方法中的横切逻辑代码。
AOP最常用的地点就是日志,假设有一个加工流水线,分别是负责洗菜的A,负责做菜的B和负责上菜的C,通常用户点一份菜需要三分钟,但偶尔会出现三小时都没法上菜的情况,这就需要负责人去研究是那个环节出现了问题,比如让每个人把工作开始和结束的时间记下来,最后交给负责人去研究到底是谁出问题了,但这样最大的问题是需要每个人都参与到日志的记录中,一个人做的越多,出错的几率就越大,所以就可以雇一个专门记日志的日志专员,每天跟在员工后面,进行记录,这就是AOP。
AOP主要解决了再不改变原有代码的前提下,减少了代码耦合,避免横切逻辑代码发送重复
AOP中最重要的概念有五个,分别是:通知(执行时机和执行内容),连接点(执行过程中可插入切面的点),切入点(在何处插入),切面(通知 + 切点)织入
通知:何时做什么,(何时何事)
连接点:可以在执行过程中插入的点
切入点:在何处插入(何地)
切面:通知和切点的合集就是切面(在何时何地完成何事)
引入:可以向指定类添加方法或属性
织入:将切面织入到目标对象并创建代理对象的过程
转载地址:http://ibmmi.baihongyu.com/