快速业务通道

AOP@Work: 使用AspectJ 5检验库方面 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
到有些极为出色的库方面实际上非常小,尤其是 那些将纯粹的 Java 代码实现于一个超类之中的库方面更是如此,而超类可独立 实例化、独立测试。(这里他给出的例子是 ThrownObserver 和 AbstractSubjectObserver。)Holly 和 Kelli 对缓存与版本控制的合并非常感 兴趣。每个方面实现部分解决方案,而不是直接将方面放在一起使用,这样各部 分都可以在其他解决方案中使用。与 Java 中的情况一样,通用公共接口有助于 避免使实现的各部分了解过多关于其他部分的信息。无论对于注释来说,还是对 于由关注主体定义的公共切入点来所,这都是可以实现的。

Zed 需要定论……

Zed 要求您提供一份考虑事项一览表。下面就是您为他提供的:

1.方面用于产品还是开发?降低风险!

2.方面是可选的还是必备的(例如 ,必须使用方面才能完成编译)?必要程度如何?如果方面发生故障或被删除会 怎样?

3.需要什么才能限定一个库方面?

1.无

2.可选切入点

3.简单 的 within 切入点

4.完全量身订做的切入点

AOP@Work: 使用AspectJ 5检验库方面(15)

时间:2011-09-07 IBM Wes Isberg

5.应用接口或注释

1.在目 标代码中声明的接口或注释

2.在方面中声明的接口或注释

3.同时在目标代 码和方面中声明的接口或注释

6.对于注释或接口,声明是否不仅影响切入点 ,还要影响通知?

7.重写方面方法

8.配置方面委托(例如,通过工厂配置 )

4.方面的风格

1.代码风格:AspectJ 对 Java 语言的扩展

2.注释风 格:以 Java 注释声明方面(方面必须为可选的)

3.XML 风格 (?):在 aop.xml 中声明具体方面(方面必须为可选的,且库方面中仅切入点可为抽象的 )

5.部署问题

1.装入时织入(仅对可选方面有效)

2.装入时织入平台 变量(多重)

1.Java 1.3:自定义类加载程序,基于 WeavingURLClassLoader

2.Java 1.4:AspectJ 1.2.1 aj.bat 脚本,取代系 统类加载程序

3.Java 5:Java 5 装入时字节码织入器挂钩

6.理解库方面

1.核心组件

■切入点

■通知

■类型间成员声明

■类型间父声明

■类型间错误声明

■要重写的受保护方法

■配置挂钩

2.numericity :方面实例化、联合、映射及切入点

3.类型安全:通知约束、mixin 接口、 AspectJ 5 参数化类型和方面

4.敏感度:明确;小型语言?

5.可维护性

1.可理解性

2.是在方面中还是在程序中跟踪程序变化?如何通知?

3. 检测错误:

■AspectJ 工具错误和 lint 消息

■方面声明错误消息

■ 测试代码

■运行时不变量测试(产品代码中的失效实时处理)

■(见以下 关于健壮性的部分)

7.健壮性:系统发生变化时是否依然正常工作?

AOP@Work: 使用AspectJ 5检验库方面(16)

时间:2011-09-07 IBM Wes Isberg

1.切 入点中有哪些假设?

1.这些假设有编译时测试的保障吗?

2.它们采用了严 密、防御性的编码方式吗?

3.切入点未被重写时,有通知吗?被重写时呢?

4.它们采用了严密、防御性的编码方式吗?

5.用于在抽象类中构成切入点 的 Scope 和 Trifecta 模板

2.系统中的新子类型会带来什么影响?

1.相 同的切入点或注释对它们起作用吗?

2.它们遵循同样的环境假设吗?同样的 异常处理?所有子类型都应按超类型处理吗?

看到这份一览表后,Zed 高兴 地吻了您一下!感觉很怪异,但这不失为一个好兆头。

库方面一览

库方面挑战游戏结束了,通过这个游戏简单介绍了简化库方面编写和部署的 方面库及 AspectJ 5 特性。表 8 列出了本文中介绍的方面,可通过下载源文件 获得这些方面。表 8 中说明了:

方面是必需的 (req) 还是可选的 (opt)

方面是用于开发 (dev) 还是用于 产品 (pro)

主题范围(兼所在文件夹)

指定具体方面需要的条件,即:

within 表示形如 within(com.magickingdom..*) 的简单切

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号