AOP
概念
Aspect Oriented Programming(AOP)是近来较为热门的一个话题。AOP,国内大多译作“面向方面编程”。
“
面向方面编程
”
,
这样的名字并不是非常容易理解,且容易产生一些误导。不止一次听到类似
“
OOP/OOD
即将落伍,
AOP
是新一代软件开发方式
”
这样的发言。显然,发言者并没有理解
AOP
的含义。
Aspect,没错,的确是“方面”的意思。不过,华语传统语义中的“方面”,大多数情况下指的是一件事情的不同维度、或者说不同角度上的特性,比如我们常说:“这件事情要从几个方面来看待”,往往意思是:需要从不同的角度来看待同一个事物。这里的“方面”,指的是事务的外在特性在不同观察角度下的体现。有时候更多的是将Aspect理解为切面更合适。
OOP(是面向对象编程),针对不同业务将具体属性和实体的封装,以达到将业务层的逻辑单元清晰划分。而AOP是面向业务中某部分或某阶段进行超作的,已获得逻辑部分之间的低耦合。这两种编程思想在目标上有着本质的区别。同时这两种思想完全可以一起出现在项目当中,通过OOP对整个项目中业务对象进行建模,而通过AOP对项目中某阶段或某部分进行逻辑上的隔离或优化。