一、简介AOP
AOP: Aspect Oriented Programming 面向切面编程。
主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。
可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。
AOP 是一种编程思想,而不是具体实现。
要想学会AOP 首先要了解runtime and method Swizzling.
runtime对于进阶的朋友们应该不陌生,里面又是一些动态给类添加、替换方法和属性的API、method Swizzling也是依据Runtime实现的。主要是通过IMP交换类的方法等、
主要实现方法就是在父试图的+(void)load方法用runtime添加逻辑。有很多文章都有介绍。