美文网首页
AOP/OOP区别

AOP/OOP区别

作者: 半世浮华一生留恋 | 来源:发表于2018-05-24 16:14 被阅读0次

区分

AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。

而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异。

上面的陈述可能过于理论化,举个简单的例子,对于“雇员”这样一个业务实体进行封装,自然是OOP/OOD的任务,我们可以为其建立一个“Employee”类,并将“雇员”相关的属性和行为封装其中。而用AOP设计思想对“雇员”进行封装将无从谈起。

同样,对于“权限检查”这一动作片断进行划分,则是AOP的目标领域。而通过OOD/OOP对一个动作进行封装,则有点不伦不类。

换而言之,OOD/OOP面向名词领域,AOP面向动词领域。

关系

很多人在初次接触AOP的时候可能会说,AOP 能做到的,一个定义良好的 OOP 的接口也一样能够做到,我想这个观点是值得商榷的。AOP和定义良好的 OOP 的接口可以说都是用来解决并且实现需求中的横切问题的方法。但是对于 OOP 中的接口来说,它仍然需要我们在相应的模块中去调用该接口中相关的方法,这是 OOP 所无法避免的,并且一旦接口不得不进行修改的时候,所有事情会变得一团糟;AOP 则不会这样,你只需要修改相应的 Aspect,再重新编织(weave)即可。 当然,AOP 也绝对不会代替 OOP。核心的需求仍然会由 OOP 来加以实现,而 AOP 将会和 OOP 整合起来,以此之长,补彼之短。

相关文章

  • aop概念

    (1)oop与aop的区别: oop是面向对象编程,aop是面向切面编程或者面向方面编程.. (2)aop的用处和...

  • AOP之AspectJ在Android中的应用

    1 前言 1.1 什么是AOP,与OOP的区别 OOP:即ObjectOriented Programming,面...

  • 【Android】AOP 面向切面编程(一) -- Aspect

    什么是AOP,与OOP的区别 OOP: (Object Oriented Programming) 面向对象的程序...

  • AOP/OOP区别

    区分 AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP(面向对象编程)针对业务处理过程...

  • AOP/OOP区别

    区分 AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP(面向对象编程)针对业务处理过程...

  • 大话AOP与Android的爱恨情仇

    1. AOP与OOP的区别 平时我接触多的就是OOP(Object Oriented Programming面向对...

  • Android中AOP的实际运用

    Android中AOP的实际运用 一、AOP简介 AOP即面向切面编程,区别于OOP(面向对象编程)的功能模块化,...

  • aop和oop区别

    1、oop是java在面向对象编程 aop是面向切面编程,AOP主要应用于日志记录,性能统计,安全控制,事务处理等...

  • AOP技术

    来源Android开发中的AOP技术 前言 AOP的中文解释是面向切面编程,是一种编程范式。 OOP与AOP的区别...

  • 腾讯面试官问:你知道什么是AOP吗?AOP与OOP有什么区别,谈

    面试官: 你知道什么是AOP吗?AOP与OOP有什么区别,谈谈AOP的原理是什么 心理分析:一旦问到aop面试官在...

网友评论

      本文标题:AOP/OOP区别

      本文链接:https://www.haomeiwen.com/subject/uxpsjftx.html