面向方法编程AOP学习之一 —— 新知新觉

本文介绍了面向切面编程(AOP)的概念及其在不修改源代码的情况下为程序添加新功能的技术。AOP旨在通过将关注点分离来增强代码的可维护性和可读性,适用于日志记录、性能监控等场景。文章还列举了几个主流的AOP框架。

引言:

       在编程的学习之路, 我们经常在讲着面向过程还是面向对象,但总归是一个程序执行流的方式,代码一行行的执行下去,但对于面向方法编程(AOP),个人感觉,它的实现方式,让人焕然一新。AOP的学习,不仅仅在于一种应用,更是一种思路的学习。我很感叹这种编程方式,在不改变原有的实现方式代码下,增加新的功能。

       在Spring中的AOP提到了AOP可以用来做日志、事务等等。

       如举个简单的例子:对程序中类一个类中的某一接口方法在被调用时,我需要在调用它之前或之后做一些想做的处理呢?而做这些处理的动作在于不改变原有代码的情况下。

       对于它的好处,我深信不疑,我也相信对它的学习,会在我今后的工作中,也起到很大的帮助作用。所以我想深入的去学习它,从了解它的思路,到Spring的AOP实现方式,实现原理。学的不仅仅是一种应用,更是一种思想的改革。

 

 

概念:

       引用百度百科里面的一段描

写道
AOP为Aspect Oriented Programming的缩写,意为:面向方法编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。 AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。
AOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面(方面)编程。
  主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。
  主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。

 

 

AOP切图

 

  

 

 

 

 

 相关框架:

      

    在AOP的世界里面,留给我们的有很多的框架,其中,如Spring in Action 这本书中提到的三大成熟的框架:

■ AspectJ (http://eclipse.org/aspectj)
■ JBoss AOP (http://labs.jboss.com/portal/jbossaop/index.html)
■ Spring AOP (http://www.springframework.org)

 

感想:

      在AOP的世界里,你可以暇想着,不再会因为业务方多变的需求,而去大量的原有代码中进行修改,经常性的代码修改,出现问题的情况时有发生。但aop的实现方式,让你的实现方式大大简单了,虽然并不是对所有的需求变更都可以用这样的方式实现。

      举一简单的例子,如果有一个突然到来的需求说:如果用户新注册成功的时候,就自动发送红包。

      这时,可以不去更改原来已经方法,而只要在新用户注册成功把信息存入数据库中的那个方法,加入一个切入点,在方法执行完之后,执行相应的处理代码。这个需求就很轻松的实现了,而且,测试简单,不会轻易引入新的bug问题。

 

其他相关

      面向方法编程AOP学习之二 —— “原始时代”

本项目采用C++编程语言结合ROS框架构建了完整的双机械臂控制系统,实现了Gazebo仿真环境下的协同运动模拟,并完成了两台实体UR10工业机器人的联动控制。该毕业设计在答辩环节获得98分的优异成绩,所有程序代码均通过系统性调试验证,保证可直接部署运行。 系统架构包含三个核心模块:基于ROS通信架构的双臂协调控制器、Gazebo物理引擎下的动力学仿真环境、以及真实UR10机器人的硬件接口层。在仿真验证阶段,开发了双臂碰撞检测算法和轨迹规划模块,通过ROS控制包实现了末端执行器的同步轨迹跟踪。硬件集成方面,建立了基于TCP/IP协议的实时通信链路,解决了双机数据同步和运动指令分发等关键技术问题。 本资源适用于自动化、机械电子、人工智能等专业方向的课程实践,可作为高年级课程设计、毕业课题的重要参考案例。系统采用模块化设计理念,控制核心与硬件接口分离架构便于功能扩展,具备工程实践能力的学习者可在现有框架基础上进行二次开发,例如集成视感知模块或优化运动规划算法。 项目文档详细记录了环境配置流程、参数调试方法和实验验证数据,特别说明了双机协同作业时的时序同步解决方案。所有功能模块均提供完整的API接口说明,便于使用者快速理解系统架构并进行定制化修改。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值