一、概念
AOP(Aspect Oriented Programming) 面向切面编程 的缩写, 是OOP(Object Oriented Programming)的有力补充。动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面编程。我们管切入到指定类指定方法的代码片 成为 切面。 切入到哪些类、哪些方法则叫 切入点。 我们就可以把几个类共有的代码,抽取到一个切片中,等到需要时再切入对象中去,从而改变其原有的行为。 也可以 在编译期间修改 某些SDK 中的对象,插入某些代码片段。
利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
这样看来,AOP其实是OOP的补充。OOP从纵向上区分出一个个的类来,而AOP则从横向上向对象中加入特定的代码。有了AOP,OOP变得立体了。如果加上时间维度,AOP使OOP由原来的二维变为三维了,由平面变成立体了。
二、Android中的应用
下图是Android中不同契机下对于AOP编程思想应用的集合:APT、AspectJ、Javassist等
稍微不全面的一张图三、Android中具体的应用场景
- 性能监测
- 埋点方案
- 防重复点击
- 权限检查
- 日志记录
.....
最后,感谢各位网友的无私奉献
网友评论