什么是AOP(通俗易懂)

怎么通俗怎么来,什么是AOP 思想 呢?

举个例子:就是有三个方法A,B,C,这三个逼都想找女朋友,那就来一个getGirl()方法吧,然后在A,B,C中都调用一遍getGirl方法,这样A,B,C都顺利找到了女朋友。
接着来了一位好兄弟D,他说凭什么要在我的方法内部调用getGirl呢?
D坦露:我确实是想找女朋友的,我也确实是想调用她,可是我这方法体实在没有地方盛getGirl()了,何况爷的方法内部那都是主要业务,能不能跟getGirl()方法说一声,在她那边记录一下,跟她说让她看着点,在我的方法内部中当我的rich()方法执行完了,就帮我调用一下getGirl()。
getGirl()听完想了想觉得也合理,就在自己的“登记表”中标注了一下,大致意思就是在D执行完rich()方法后就帮他调用自己(大意就是等D有钱了就找女朋友,悲)。

我突然觉得解决问题的关键或许是:换个角度,换个立场。

为什么这么说呢?
你看我们以前调用方法那都是什么,都是在方法中写入要调用的方法名,就像上面举得例子一样,要在自己的方法体中调用getGirl方法,这样就让我们自己方法的内部显得很冗杂。打个比方:在没有用AOP之前这个getGirl就像是静态的,她就坐在那里,一动不动,你要用她,她就帮你做事;而当用了AOP之后,她变成动态的了,她就像是变了一个人,她变得主动起来了,她开始关心其他的方法是不是要调用她了。
就像是:以前都是其他方法追着跟她说,某时某刻要调用一下你

相当于:被动等待

而现在是:她追着其他方法问:你们要调用我吗?调用的话就来我这登记一下

相当于:主动出击

如果上述内容懂了,那么去看AOP的概念来理解AOP就可能好理解了:
这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。
类的指定方法、指定位置:说的就是要调用她的方法。
我理解的这个动态就是:动态地在登记表中去寻找要调用她的方法(A,B,C,D),动态的将自己的代码切入(插入)到要调用她的方法(A,B,C,D)中.

这就是AOP思想,个人理解,如有理解不到位的还请指正,感谢!
如若转载请注明地址哦,不胜感激!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CFuYuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值