POP,AOP,OOP之间的比较

POP,AOP,OOP之间的比较


POP–面向过程

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向过程侧重整个问题的解决步骤,着眼局部或者具体。

优点:

  • 流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结果;
  • 效率高,面向过程强调代码的胆小精悍,善于结合数据结构来开发高效率的程序;
  • 流程明确,具体步骤清楚,便于节点分析。

缺点:

  • 需要深入的思考,耗费精力,代码重用性低,扩展能力差,维护起来难度比较高;
  • 对复杂业务来说,面向过程的模块话难度较高,耦合度也比较高。

OOP–面向对象

面向对象侧重具体的功能,让某个对象具有这样的功能。更加侧重于整体。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为
面向对象针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。

优点:

  • 结构清晰,程序便于模块化,结构化,抽象化,更加符合人类的思维方式;
  • 封装性,将事务高度抽象,从而便于流程中的行为分析,也便于操作和自省;
  • 容易扩展,代码重用率高,可继承,可覆盖;
  • 实现简单,可有效地减少程序的维护工作量。

缺点:

  • 面向对象在面向过程的基础上高度抽象,从而和代码底层的直接交互非常少,从而不适合底层开发和游戏开发,甚至是多媒体开发;
  • 复杂性,对于事务开发而言,事务本身是面向过程的,过度的封装导致事务本身的复杂性提高。

AOP–面向切面

AOP是通过 预编译方式和运行期动态代理 实现 程序功能 的 统一维护 的一种技术。特点:低耦合,高聚合。
AOP是OOP的延续,针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
有了 AOP,我们可以定义交叉的关系,并将这些关系应用于跨模块的、彼此不同的对象模型。AOP 同时还可以让我们层次化功能性而不是嵌入功能性,从而使得代码有更好的可读性和易于维护。

优点

  • 简单,易用;
  • 降低模块的耦合度 ;
  • 使系统容易扩展 ;
  • 设计决定的迟绑定:使用AOP,设计师可以推迟为将来的需求作决定,因为它可以把这种需求作为独立的切面很容易的实现;
  • 更好的代码复用性。

缺点

  • 太多重复代码,且紧耦合;
  • 性能略低,仅适用于方法调用,必须在Spring容器
  • 每个业务逻辑需要一个装饰器实现或代理;
  • 使用麻烦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值