浅谈OOP和AOP

2018-04-06  本文已影响292人  小新是个程序媛

1. 面向对象编程(OOP)

针对业务处理过程中的实体,属性,行为进行封装,以获得更加清晰高效的逻辑单元划分

OOP主要特点

封装 继承性 多态性

2. 面向切面变成(AOP)

针对业务处理过程中的切面进行提取,更偏重于业务处理过程中的某个步骤或阶段,以获得逻辑处理过程中各部分之间低耦合的隔离效果,使代码具有更好的可移植性

AOP主要的特点

源码无关性:在不改变源码的前提下,给程序动态统一添加功能
隔离性:低耦合

AOP的主要功能

日志记录 性能统计 安全控制 事务处理 异常处理

3. OOP和AOP的区别

a. AOP是对OOP的补充
b. OOP是将程序分解成各个层次的对象,面向业务中的名词领域,侧重点在与抽象
c. AOP是将程序运行过程分解成各个切面,从程序运行角度考虑程序的结构,面向业务中的动词领域,侧重点在于解耦

举例说明

  1. 对于“雇员”这样一个 业务实体进行封装,自然是OOP/OOD的任务,我们可以为其建立一个“Employee”类,并将“雇员”相关的属性和行为封装其中。而用AOP设计思想对“雇员”进行封装将无从谈起。
  2. 对于“权限检查”这一动作片断进行划分,则是AOP的目标领域。而通过OOD/OOP对一个动作进行封装,则有点不伦不类。
  3. python中的装饰器,就是AOP的一个很好的实现
上一篇 下一篇

猜你喜欢

热点阅读