切面可以简单地理解为嵌入不同函数中的功能相同的操作(打印调试信息等),每类功能相同的操作可以抽取出一个切面。
OOP:面向对象编程,针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
AOP:面向切面编程,针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
AOP是处理某个步骤和阶段的,从中进行切面的提取,也就是说,如果几个或更多个逻辑过程中,有重复操作行为,AOP就可以提取出来,运用动态代理,实现程序功能的统一维护。
AOP原理:在不更改正常的业务处理流程的前提下,通过生成一个动态代理类,从而实现对目标对象嵌入附加的操作。在iOS中,要想实现相似的效果很简单,利用OC的动态性,通过Method Swizzling改变目标函数的selector所指向的实现,然后在新的实现中实现附加的操作,完成之后再回到原来的处理逻辑。
面向切面编程
最新推荐文章于 2024-05-10 09:44:22 发布