1. AOP(Aspect Oriented Programming):
AOP即面向切面编程。是设计模式的延续。设计模式追求的是调用者和被调用者之间的解耦,AOP可以说是对此目标的一种实现。
2.产生的必要性:
OOP的局限性:面向对象很好的解决了软件系统中的角色划分问题。借助面向对象中分析,设计和实现,可以将问题领域中的“名词“转换为系统中的对象,从而实现从问题到软件的转换,因此,OOP可让我们很好的处理业务逻辑上的问题。然而某些需求无法用名词来描述,例如需要对系统中的某些部分进行事务处理或权限控制,需要处理的部分往往分散在的各个部分当中。这种并非业务逻辑(核心功能)上的问题,单纯使用OOP往往会造成大量代码的散布在系统中的各个部分,这种散布在各处的代码成为横切代码(cross—cutting),它通常导致大量代码的重复,不利于系统的维护和各个模块的重用。
AOP的产生和作用:AOP将封装的业务对象剖开,将那些影响了各个业务对象的公共行为封装成一个可重用模块。就是将那些业务无关,但被业务模块共同调用的功能封装成一个独立的模块,以减少系统的重复代码,降低耦合度。使用横切技术,AOP将系统分为:核心关注点和横切关注点。
AOP的核心思想:将应用程序中的商业逻辑和对其提供支持的通用服务进行分离。
3.实现技术概述:
一.采用动态代理技术:利用截取消息的方式,对该消息进行装饰,以取代原有的对象行为的执行。
二.采用静态织入的方式,引入特定的语法创建“切面”,从而使编译器在编译期间织入有关“切面”的代码。
(未完待续)