AOP核心思想是“将程序中的业务逻辑和提供支持的通用服务,解耦分离”
- 什么是AOP
- AOP思想
- 业务拆分举例
- AOP实现技术分类
什么是AOP
AOP,即面向方面编程,是OOP面向对象编程的补充,OOP引入封装、继承和多态建立对象层次结构; AOP 引入切面建立对象的水平结构。
AOP思想
AOP把软件系统一分为二——核心关注点和横切关注点,进行解耦分离。业务处理主流程是核心关注点;辅助功能流程是横切关注点,特点是,辅助关注点散布在各个核心关注点的层次结构中。如权限认证、日志、事务处理。造成代码重复,业务耦合。
业务拆分举例
AOP是一个横向关系,以横向切面技术,进行模块解耦,把功能代码封装成重用模块——Aspect切面,例如:订单核心业务S是一个球,日志功能N也是一个球,AOP思想把两个球以切面并排,从S获取内部消息(参数),传到N中,N代理执行通用代码,实现模块解耦
AOP实现技术分类
AOP技术实现分两类:一是采用动态代理技术,截取消息,代理执行取代原有核心关注点执行;二是采用静态织入的方式,引入特定的语法创建切面,让编译器可以在编译期间织入有关切面的通用代码