Android面试超级攻略,全面攻破技术疑难及面试痛点吾爱fen享

download:Android面试超级攻略,全面攻破技术疑难及面试痛点 AOP产生背景 【Android面试超级攻略,全面攻破技术疑难及面试痛点吾爱fen享】使用面向对象编程 ( OOP )有一些弊端,当需要为多个不具有继承关系的对象引人同一个公共行为时,例如日志、安全检测等,我们只有在每个对象里引用公共行为,这样程序中就产生了大量的重复代码,程序就不便于维护了,所以就有了一个对面向对象编程的补充,即面向方面编程 ( AOP ), AOP 所关注的方向是横向的,区别于 OOP 的纵向
什么是AOP 什么是面向方面编程,3个过程:
找到横切点:首要目标确定在程序的哪个位置进行横切逻辑
横切逻辑(业务代码):横切逻辑代码,这个就是横切业务代码,与aop无关
织入:将横切逻辑织入到横切点
开发者主要关心的是横切逻辑的编写,只需要很少的代码编写确定横切点有哪些,而不需要去为每个横切点添加横切逻辑,不然就是面向对象编程了。
既然是横向的编程,那么在我们的程序中,哪些可以作为横线切入点呢?
看下示例代码:

public class Test { public static void main(String[] args) { //@1 B b = new B(); //@2 b.method(); //@3 B.say(); }static class B { //字段 //@4 private String name; //构造方法 public B() { //@1.1 } //对象方法 public void method(){ //@2.2 } //静态方法 static void say(){ //@3.3

    推荐阅读