`
koolC
  • 浏览: 19318 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

AOP pk OOP

阅读更多

      传统的编程方法是OOP(面向对象编程)方法,该方法的好处不用多说,大家都很了解。然而,它有一个很大的弊端就是,当你在开发你的应用时,经常会发现在程序的架构中,有很多模块的功能很类似,只是针对的具体功能不同而已。举个例子如常用的管理功能(增、删、改、查),很多模块说白了都是这个功能的变体,大同小异。如果按照传统的OOP编程方式,每开发一个模块,程序员都需将该模块的增删改查功能全部开发出来,这样,不同的程序员都在开发几乎相同逻辑的业务功能,所以,按这样的方式进行下去,最终你会发现整个项目中有很多代码是重复的,而且模块越多,代码重复的量就越多。这样造成的后果是即耗精力,又低效,于人于己都是巨大的损失。


      那么怎样解决这种弊端呢?目前,使用最好的就是AOP(面向切面编程,或者叫面向方面编程)方法了。面向切面编程,顾名思义就是将应用的开发从横向切开,将那些影响多个模块(或者类)的某种行为封装到单独的模块,这样即可实现模块的重用,避免代码的大量重复 。AOP 的核心构造就是方面,即


怎样将不同的应用模块之间类似的一种功能划分成为一个方面


      例如,上面所说的管理功能(增、删、改、查),不同的管理模块都有类似的管理逻辑,如果把这些模块中管理功能按方面划分,将增的方面抽象出来,单独建立一个模块负责增的功能;将删的方面抽象出来,也单独建立一个模块负责删的功能;其他的类似。当然,也可以把增、删、改、查四个方面放在一起抽象成为一个模块(如manager)。这样,只需要编程人员一次性抽象地编好所有的管理功能(增、删、改、查),然后,其他人员在编写具体的管理业务逻辑时只需调用已经编写好的管理抽象模块实现自己的业务逻辑即可,而不需要每个程序员反反复复编写每个模块的整个管理功能逻辑,这样就避免了代码的大量重复,同时又提高了程序的可扩展性,将来再有新的管理模块加入进来,只需花费很少的时间即可应对变化,整个程序的开发效率相应地提高了很多。


      这就是所谓的AOP。


分享到:
评论

相关推荐

    论AOP与OOP.pdf

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

    spring aop详细代码示例

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

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

    ### 基于OOP和AOP的软件产品线实现技术研究 #### 一、引言 软件产品线(Software Product Line, SPL)是指在共享一组受控的公共特征的基础上,利用一组预先定义的公共核心资产来开发一系列软件应用系统的工程方法...

    aop介绍

    AOP 是 OOP 的延续,是 Aspect Oriented Programming 的缩写,意思是面向方面编程。AOP 实际是 GoF 设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP 可以说也是这种目标的一种实现。 AOP...

    编程(思想) POP OOP AOP IOP

    面向切面编程(AOP)是OOP的补充,它关注程序的“切面”,即跨越多个对象的通用行为,如日志、事务管理等。AOP将这些横切关注点从主业务逻辑中分离出来,允许程序员定义“切点”并在运行时动态插入代码。AOP通过预编译...

    spring aop spring aop

    在给出的XML配置中,`<aop:config>`元素开启AOP支持,而`<aop:aspect>`元素用于定义切面,其内部通过`<aop:pointcut>`定义切点,并通过`<aop:before>`和`<aop:after>`指定通知。 为了使用这些配置,我们需要在代码...

    spring-aop.jar各个版本

    spring-aop-1.1.1.jar spring-aop-1.2.6.jar spring-aop-1.2.9.jar spring-aop-2.0.2.jar spring-aop-2.0.6.jar spring-aop-2.0.7.jar spring-aop-2.0.8.jar spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-...

    aop

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

    Spring AOP 16道面试题及答案.docx

    Spring AOP,全称为Aspect Oriented Programming,是面向切面编程的一种编程范式,它是对传统的面向对象编程(OOP)的一种补充。在OOP中,核心是对象,而在AOP中,核心则是切面。切面是关注点的模块化,即程序中的...

    springAOP详解

    AOP 和传统的面向对象编程 (OOP) 在思想上有显著的不同: - **关注点分离**:OOP 关注的是如何将系统划分为类和对象,每个对象负责一部分功能;而 AOP 关注的是如何将跨越多个对象的功能(如日志记录)分离出来并...

    Spring AOP面向方面编程原理:AOP概念

    随着软件系统的日益复杂,传统的面向对象编程(OOP)逐渐暴露出难以应对某些横切关注点(cross-cutting concerns)的问题。为了解决这一挑战,面向方面编程(AOP)应运而生。Spring框架作为Java开发领域的领头羊之一,提供...

    aopalliance-1.0.jar及aopalliance源码

    **AOP Alliance简介** AOP Alliance是一个开源项目,它的全称是Aspect Oriented Programming(面向切面编程)Alliance,是Java平台上的一个接口集合,为面向切面编程的实现提供了一个统一的API。这个库的主要目的是...

    深入理解Android之AOP

    面向切面编程(AOP)是软件开发领域的一项重要技术,它与面向对象编程(OOP)相对应,但关注点不同。在本篇中,我们将深入探讨AOP的基本概念、优势以及在Android开发中的应用,同时与OOP进行比较分析。 首先,面向...

    aop所依赖的所有包

    AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在减少代码的重复性和增强可维护性,特别是在处理系统中的横切关注点时。这些关注点,如日志、事务管理、安全检查等,往往分散在系统的各个部分...

    spring-boot aop

    Spring Boot AOP(面向切面编程)是一种强大的设计模式,它允许我们在不修改现有代码的情况下,插入额外的功能或监控代码。在Spring框架中,AOP主要用于日志记录、事务管理、性能统计等场景。本示例是关于如何在...

    开发工具 aopalliance-1.0

    开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具...

    AOP@Work AOP 工具比较

    面向切面编程(AOP,Aspect Oriented Programming)是一种编程范式,旨在通过将关注点分离,提高软件的模块化程度。AOP的核心是切面,它封装了横切关注点,如日志、事务管理、性能监控等,使得这些功能可以独立于主...

Global site tag (gtag.js) - Google Analytics