浅谈OOP和AOP

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的一个很好的实现
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,866评论 25 709
  • 1. AOP与OOP的区别 平时我接触多的就是OOP(Object Oriented Programming面向对...
    生椰拿铁锤阅读 2,429评论 3 22
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,425评论 11 349
  • 没有痛苦,没有欢乐, 没有喜悦,没有幸福, 什么都没有,只有黑夜,无边的黑夜。 也许堕落,也许成功, 也许升华,也...
    付子明阅读 222评论 0 3
  • 陆先生是我第三个男朋友,个子不高,人长得也不帅,认真看时还有点丑,所以我把他归到了丑男的行列里。 陆先生是山东人,...
    路人小A阅读 333评论 0 0