AOP(Aspect Oriented Programming) 通常译为 面向切面编程
。在工程中常用来分离具体的业务逻辑,个人理解为从不同维度来增加新的业务逻辑,这样在不影响之前功能的前提下可以将新的业务逻辑从某一切面中嵌入工程,达到低耦高聚的目的。
/*viewControllerOne*/
@implemention ViewControllerOne()
- (void)viewWillAppear{
[super viewWillAppear];
[MITStat statForEventID:@1 message:@"ViewControllerOne viewWillAppear"];
}
@end
/* viewControllerTwo*/
@implemention ViewControllerTwo()
- (void)viewWillAppear{
[super viewWillAppear];
[MITStat statForEventID:@2 message:@"ViewControllerTwo viewWillAppear"];
}
@end
...
业务代码的分散度高,耦合性强,后期不利于维护,并且需要客户端不断去维护 eventId
的表,并且如果在后台配置的 eventId
一旦改变,必须通过客户端发版来添加或修改新的统计类别。如果线上发现出现遗漏统计点,也需要后面客户端发版来解决。可以见得传统方式的统计效率并不是很理想。
eventID
表,减少了冗余代码。