【java反射】动态代理与AOP

AOP的原理是动态代理,动态代理的原理是反射。

情景导入

如果3个代码段中都包含同一段代码,那我们怎么规划更合理呢?
在这里插入图片描述

情景一:

代码段1、2、3都存在一个相同的方法fly(),那我就把fly()的实现抽离出来,这样3个代码段只调用方法就好了。

情景二:

我还想再优化,因为此时如果我把fly()方法改名为了flysky(),那我还需要各去3个代码段里修改。
我想要的效果是:不用在代码段中写对fly()的调用,3个代码段也能调用fly()方法。怎么做呢?
答:使用以动态代理为原理的AOP(面向切面编程)。
在这里插入图片描述
AOP的作用可以简单表述为:自动在方法执行的前中后执行一段同样的方法。比如想在每个方法执行前都加上“==== 有方法开始执行了====”,就可以使用AOP。

代码解读

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述

小结

对反射的总结就在此告一个段落了。对于我这个初级小菜鸟来说,代码中使用了反射反而更繁琐了。这就像只实现一个简单的功能,却用了分层一样。不过大概知道了反射是怎么一回事,也很值呢,哇咔咔。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卡夫卡的熊kfk

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

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

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

打赏作者

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

抵扣说明:

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

余额充值