OOP与AOP的区别和联系
OOP:面向对象编程核心思想:将客观存在的不同事物抽象成相互独立的类,然后把与事物相关的属性和行为封装到类里,并通过继承与多态来定义类彼此之间的关系,通过操作类的实例,来完成业务逻辑的功能需求。
AOP:面向切面的编程
核心思想:将业务逻辑中与类不相关的通用功能切面式的提取分离出来,让多个类共享一个行为,一旦这个行为发生改变,不必修改类,而只需要修改这个行为即可。
区别:
- 面向目标:OOP面向名词领域,AOP面向动词领域。
- 思想结构:OOP是纵向结构,AOP是横向结构。
- 注重方面:OOP注重业务逻辑单元的划分,AOP偏重业务处理过程的某个步骤或阶段。
联系:两者是一个相互补充和完善的关系。
AOP的优点:利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各个部分之间的耦合度降低,提高程度的重用性,同时提高了开发效率。
AOP的主要应用:
日志记录、事物记录、异常记录、安全控制、性能统计方面。