快速业务通道

AOP@Work: 使用方面的下几个步骤-学习建议之后 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
划将如何对方面库进行配置、扩展、部署和限制(可能的 话)。我在 “AspectJ 进行性能监视,第 2 部分” 中详细介绍了方面库可扩 展性设计的一些策略。

完整性设计

我曾亲身体会到确保可重用方面处理与其交互的模块之间的所有 交互是多么 重要。特别是,自然要编写方面来扩展或利用其他库的功能,比如监控性能、管 理对象之间的持久关系或跟踪库中的错误。为其他库执行这些任务的可重用库需 要跟踪为该库使用的所有 有效模式,而不仅仅是特定开发人员知道的那些模式 。简而言之,它要求必须真正掌握要扩展的库的设计,而不是仅仅知道使用该库 的一种方法。

在今天的许多案例中,使用方面来扩展另一个库是在对发生在系统生命周期 中的事件存在相当不一致的或无文档记录的定义的情况下进行的。必须确保实际 系统状态符合所有有效用户的期望(尤其是跨系统的可移植性),并将所有 API 机制考虑进来以实现给定目标。相比之下,当构建面向对象库来扩展一些现有库 时,通常只需要寻找一种有效利用功能的标准方法。理解该规则的另一种方法是 ,方面提供了一致地处理事情的强大功能,所以一定要全面理解方面正在进行的 操作及其操作环境。同样地,可重用方面应具有清晰的版本化策略和对合作库版 本的要求(正如类库一样)。

整个生命周期的计划

仔细注意系统生命周期中方面的交互。初始化总是对象生命周期中棘手的时 刻。初始化方面时,必须仔细考虑与静态(类)和实例(对象)初始化以及其他 方面的交互,其中包括如何正确地处理错误。方面初始化需要在方面被初始化的 任何时候都是正确的。此外,AspectJ 的默认单体方面在其类被加载时立即初始 化,从而使得在加载已配置方面类型之前必须启动任何配置机制。我已经体验过 此规则的重要性,尤其是在编写方面来处理日志记录、错误处理、运行时控制、 配置以及自动注册 JMX 类型时。

编写瘦方面

使方面和与其所合作的代码之间的隔离性最大化非常重要。在许多方面,这 只是通过使依赖性最小化、宽容对待您所接受的值并严格对待您所提供的值来避 免耦合的旧规则。编写指派给实现对象的 “瘦” 方面是我发现的极有价值的技 术。当用依赖性注入配置方面并仅依赖接口时,这一点非常有用,它可以使得更 改实现更加容易。

学习以不同方式进行重用

AOP 允许一种新的可重用代码。它允许随意 使用具有特性变体和开放可扩展 性的低耦合功能。AOP 库通常包括方面、类和接口之间的合作。我第一次为 AOP 感到兴奋是因为通过在递增式采用中避免显著的耦合、巨大的前期投资和困难, 获得了改进传统面向对象框架的机会。我相信,重用将被证明是通过采用 AOP 获得的最大益处。

结束语

在对成功采用方面的四个阶段的介绍中,我提供了对方面采用过程的概述。 除了在每个阶段为开发人员和组织布置核心关注点之外,我还讨论了在不同成熟 阶段可以有效尝试并使用的特定种类的方面。有用的方面与有用的对象一样多, 所以我鼓励您思考对您的系统有用的那些方面。

通过这些讨论,我构建了成功使用方面的四个基本原则,在每个采用阶段都 会看到这些原则:

递增式采用:在每一阶段,将方面应用于可实现和有价值的地方。

重用然后创建:努力寻求可重用或可扩展的现有解决方案,而不要总是发明 新的解决方案。

投资在惊喜上:确保同事对于使用方面从始至终都保持好印象。

学习理论和实践(不断提高技能):平衡动手实践和阅读一些可用的优秀参 考资料,其中包括 参考资料 中突出显示的那些资料。

如果要继续使用方面 ,必须递增地了解其价值,正确地将其演示给组织中的其他人,然后在其他开发 人员开始同一过程时予以帮助。我希望本文能够给予您一些在任一成熟阶段对方 面进行有效使用的好主意,以及

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号