初识AOP面向切面编程

32 篇文章 0 订阅

         AOP(面向对象编程)是一种设计思想, 可以理解为函数式编程, 主要是处理某个有共性的功能需求, 运行时动态的注入代码到指定函数或指定位置上的思想; 技术上使用反射/动态代理的方式实现。

     

为什么要学习AOP,能帮我们解决什么问题?

我觉得它给我们提供了一种新的思路,是对面向对象的补充。 具体一点就是通过代码注入, 我们能在执行现有功能代码前后出入新的逻辑代码, 而且不用修改原始代码。 实战用处: 做app性能调优时打印API的执行时间、参数、返回值等, 或NB一点的热修复。

          

http://www.cnblogs.com/Wolfmanlq/p/6036019.html 很直观的说明切面是什么意思。 OOP思想下Android的各个系统服务和app代码本身功能里并不包含打日志功能,我们也可以将所有调用Log.*(打日志)的语句理解为一个切面,将功能代码注入到OOP思想下的模块里。


http://blog.csdn.net/innost/article/details/49387395  “深入理解Android之AOP” 这篇文章讲的非常详细, 看了很多关于Android AOP的文章, 感觉这篇是最好的。 我们只要记住Android AOP是用AspectJ实现的就好, 


https://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/ 

http://www.jianshu.com/p/0fa8073fd144

这两篇技术博客讲述了AspectJ的基本用法。


       我在想日常Android app开发中, AOP思想怎么落地呢?

       1、 使用JakeWharton开发的hugo打印函数的参数、返回值和执行时间。 优点是调试时方便且不会影响app原有代码;

      2、 既然是动态代理, 可以在特定函数里注入逻辑代码。 例如: 很多API判断是否有权限。

      3、 热修复。

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值