AOP 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
OOP (面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
Aspects简介:
Aspect是一个基于metho swizzing的iOS函数替换的第三方库,他可以很好的实现勾取一个类或者一个对象的某个方法,这个库对外的两个重要接口声明如下:
Aspects github地址:https://github.com/steipete/Aspects.git
Aspects 常用方法:
1.勾取一个类的某一方法
#pragma mark - Public Aspects API
/*AspectOptions:
AspectPositionAfter (在原始的方法后执行,默认)
AspectPositionInstead (替换原始的方法执行)
AspectPositionBefore (在原始的方法前执行)
AspectOptionAutomaticRemoval
*/
+ (id<AspectToken>)aspect_hookSelector:(SEL)selector
withOptions:(AspectOptions)options
usingBlock:(id)block
error:(NSError **)error {
return aspect_add((id)self, selector, options, block, error);
}
2.勾取一个对象的某一方法
/*AspectOptions:
AspectPositionAfter (在原始的方法后执行,默认)
AspectPositionInstead (替换原始的方法执行)
AspectPositionBefore (在原始的方法前执行)
AspectOptionAutomaticRemoval
*/
- (id<AspectToken>)aspect_hookSelector:(SEL)selector
withOptions:(AspectOptions)options
usingBlock:(id)block
error:(NSError **)error {
return aspect_add(self, selector, options, block, error);
}
使用环境:
1.进行页面统计
网友评论