30、实战中的 AspectJ:从项目示例到代码重构

实战中的 AspectJ:从项目示例到代码重构

1. 项目示例中的 AspectJ 应用

1.1 项目背景与时间价值

在某些项目里,时间价值和特定对象(如 Projectile 对象)的处理至关重要。将时间价值和 Projectile 对象返回给系统后,原代码才能继续处理。例如,图 14.4 展示了 Projectile 随时间推进的示例,发射后其轨迹呈弧形,随时间推移继续下落。

1.2 测试优势

把相关关注点融入示例带来的一个好处是,测试团队在应用运行时能史无前例地访问大量变量。此外,团队还能更改时间值,以此确定代码对错误数据等情况的反应。

1.3 文档维护

对现有应用进行任何更改时,保持文档一致很重要。在这个案例中,除代码本身外,初始设计信息并不存在。于是创建了基于 UML 的类图,以帮助理解应用架构。既然图已创建,保持其更新就很有用。

1.4 UML 与 AOP 概念

不少文章探讨了扩展 UML 以处理 AOP 概念的问题。图 14.5 显示了为何在 UML 图中添加 AOP 会引发诸多讨论。在图 14.5 的 UML 类图中,处理第一个关注点的 PathLogging 类被添加到应用中,它是普通的 Java 类,不会给 UML 图带来问题。第二个关注点由名为 LogIntermediate 的 AspectJ 切面处理,从图上看,该切面就像应用中的另一个类,既无切面横切应用的指示,也未显示切入点等构造。第三个关注点同样由切面处理,但看起来也像个类。虽然可在 UML 图中添加大量注释,但以能凸显切面是应用附属物、且在很多情况下移除它们不会影响应用的形式来表示切

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值