`
T240178168
  • 浏览: 361734 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

OOP和AOP区别

    博客分类:
  • java
阅读更多
OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异。 
举个简单的例子,对于“雇员”这样一个业务实体进行封装,自然是OOP/OOD的任务,我们可以为其建立一个“Employee”类,并将“雇员”相关的属性和行为封装其中。而用AOP设计思想对“雇员”进行封装将无从谈起。同样,对于“权限检查”这一动作片断进行划分,则是AOP的目标领域。而通过OOD/OOP对一个动作进行封装,则有点不伦不类。换而言之,OOD/OOP面向名词领域,AOP面向动词领域。  
如果说面向对象编程是关注将需求功能划分为不同的并且相对独立,封装良好的类,并让它们有着属于自己的行为,依靠继承和多态等来定义彼此的关系的话;那么面向方面编程则是希望能够将通用需求功能从不相关的类当中分离出来,能够使得很多类共享一个行为,一旦发生变化,不必修改很多类,而只需要修改这个行为即可。 
面向方面编程和面向对象编程不但不是互相竞争的技术而且彼此还是很好的互补。面向对象编程主要用于为同一对象层次的公用行为建模。它的弱点是将公共行为应用于多个无关对象模型之间。而这恰恰是面向方面编程适合的地方。有了 AOP,我们可以定义交叉的关系,并将这些关系应用于跨模块的、彼此不同的对象模型。AOP 同时还可以让我们层次化功能性而不是嵌入功能性,从而使得代码有更好的可读性和易于维护。它会和面向对象编程合作得很好。
分享到:
评论

相关推荐

    基于OOP 和AOP的软件产品线实现技术研

    显然,结合OOP 和AOP 这两种技术实现的产品线系统将 具有更高的可复用性、灵活性和可配置性。本文在相关问题分析的基础上对基于OOP 和AOP 的产品线实现技术进行了研究,并通 过一个酬金发放系统产品线的实例分析对...

    面向切面(AOP)与面向对象(OOP)

    火龙果软件工程技术中心 首先你要明确的一点,AOP和OOP是两种不同的认识事物的角度,并不是说有了AOP就不要用OOP.AOP所关注的是传统OOP不能优雅解决的问题.(程序员通常都是完美主义者,当解决某个问题不优雅的时候,那...

    编程(思想) POP OOP AOP IOP

    面向过程编程(思想)POP(Procedure Oriented ...面向对象编程(思想)OOP (Object Oriented Programming) 面向切面编程(思想)AOP (Aspect Oriented Programming) 面向接口编程(思想)IOP (Interface Oriented Programming)

    spring aop详细代码示例

    AOP(Aspect-Oriented Programming)这个东西,名字与 OOP 仅差一个字母,其实它是对 OOP 编程方式的一种补充,并非是取而代之。翻译过来就是“面向方面编程”,可我更倾向于翻译为“面向切面编程”。最好的演示案例...

    论AOP与OOP.pdf

    AOP学术论文,近年来, 继面向过程编程和面向对象编程之后, 又一种新的编程思想被提出, 并被《MIT 技术评论》杂志评为...本文主要介绍了AOP 是如何产生的, 并阐述了它与OOP 的区别 与联系, 以及它们在设计模式上的比较。

    用Java动态代理实现AOP

    Java初学者不禁要发出感慨,OOP还没有学通呢,又来AOP。本文不是要在理论上具体阐述何为AOP, 为何要进行AOP . 要详细了解学习AOP可以到它老家http://aosd.net去瞧瞧。这里只是意图通过一个简单的例子向初学者展示...

    AOP 入门学习介绍文档

    AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合...

    aop

    AOP是对OOP的补充和完善,它允许开发人员动态修改OOP定义的静态对象模型--- 开发者可以不用修改原始的OOP对象模型,甚至无须修改OOP代码本身,就能够 解决“多个不具有继承层次的对象引入同一公共行为”的问题

    SOA实践 -- 使用IoC和AOP重构SOA应用

    NULL 博文链接:https://incan.iteye.com/blog/296563

    绝对深层次IOC和AOP的理解

    Spring IOC容器通过xml,注解等其它方式配置类及类之间的依赖关系,完成了对象的创建和 依赖的管理注入。实现IOC的主要设计模式是工厂模式。 AOP(面向切面)是一种编程范式,提供从另一个角度来考虑程序结构以完善...

    AOP技术及其在J2EE中动态代理实现

    随着软件技术的发展及需求的增加,OOP逐渐表现出其不足之处,AOP在继承OOP基础之上很好地解决了00P ...理,说明了其可行性,体现了AOP技术应用价值和发展前景。 关键词:AOP;动态代理;横切关注点

    使用动态代理演示Spring的AOP编程原理

    阅读对象:凡是喜爱java的学员和立志要使用Java技能编程的程序员 前置条件:了解Java的反射技术、了解Spring的配置档、熟悉OOP编程思想。 使用步骤: 1. 下载解压之后,使用Eclipse导入工程 2. 运行...

    spring-aop.zip

    作为继OOP后对程序员影响最大的编程思想之一,AOP极大地拓展了人们的编程思路。Spring以JVM的动态代理技术为基础,设计出了一系列的AOP横切实现,比如前置通知、返回通知、异常通知等。同时,Pointcut接口可以匹配...

    springaop学习方法

    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是...

    AOPDemo:AOP切面demo

    它和我们平时接触到的OOP都是编程的不同思想,OOP,即『面向对象编程』,它提倡的是将功能模块化,对象化,而AOP的思想,则不太一样,它提倡的是针对同一类问题的统一处理,通过预编译方式和运行期动态代理实现程序...

    Spring的AOP

    Spring的一个关键组件就是AOP框架 Spring的IoC容器并不依赖于AOP,也就是说,是不是用AOP都是你自己的选择;AOP完善了Spring的IoC容器 提供声明式企业服务,可以作为...允许用户定义自己的方面,使用AOP来完善OOP的使用

    java 实现AOP

    Java初学者不禁要发出感慨,OOP还没有学通呢,又来AOP。本文不是要在理论上具体阐述何为AOP, 为何要进行AOP . 要详细了解学习AOP可以到它老家http://aosd.net去瞧瞧。这里只是意图通过一个简单的例子向初学者展示...

    CH03-AOP面向切面编程.pptx

    AOP是对OOP的补充,是软件开发中的一个热点,也是Spring框架中的一个重要内容。 利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率

    基于AOP策略模式的实现机制

    本文首先将传统基于OOP策略模式的局限性进行分析说明,提出基本的策略模式以及“链式”策略模式基于AOP的具体实现,解决传统策略模式可能出现的代码分散、代码混乱问题;接着进行复杂度方面的实验对比分析;最后分析...

Global site tag (gtag.js) - Google Analytics