AOP@Work: 使用方面的下几个步骤-学习建议之后 - 编程入门网
设计模式, 第 2 部分” ,获得有关使用方面和已重构的 Library Observer 模式来跟踪服务使用状况的 详细信息。
提供特性变体是方面在这个复杂阶段的用例。例如,考虑一个商 业软件供应商,它主要提供基于开放源码构建的产品线,并添加了增值业务支持 。行业报告 “Large-scale AOSD for middleware” 描述了 IBM 在该领域的动 机和经验(请参阅 参考资料)。 对于更小更具体的示例,不妨考虑一下使用计量来跟踪客户开票服务的使用 状况。 切点接口 首先介绍不使用面向对象的 Observer 模式时如何实现该要求。通过发布切 点供外部客户机使用就可以做到这一点,例如,方面仅定义了一个切点,供被计 量事件(比如使用标题)发生时使用:
然后,代码的另一部分可以写入方面,以便在被计量的使用情况(比如,检 查信用、记录费用、立即开票、减少预付款计数器或启动定时器)发生时随时响 应。与传统的 Observer 实现不同,这里无需显式地分配事件。通常,发布切点 比传统的可扩展性机制更灵活,传统的可扩展性机制需要预定义的钩子方法,以 及用通常很笨重的方式来注册和分配给回调。以同样的方式,思考一下典型的面 向对象持久框架提供的事件前和事件后回调类型。例如,EJB 3.0 Java Persistence API 公共草案规范使用注释和回调方法支持下列七个生命周期事件 (每个事件都有两个版本),以便回调持久化的对象或一般******: PrePersist PostPersist PreRemove PostRemove PreUpdate Pos tUpdate PostLoad 使用 AOP 实现,它们可以发布为四个可以随意组合和修 饰的切点。注意,在某些情况下,发布切点供外部使用需要以特殊方式对代码进 行结构化,从而暴露简单切点定义以表示实现中的一系列连接点。 特性变体 我认为计量示例最有趣的一面就是,针对不同上下文改变特性的能力。考虑 可能起作用的不同规则: 使用前检查信用 实时开票 批开票 使用前计量 每会话计量 跟踪 奖励 按用户计量使用情况 按付款来源计量使用情况(比如,匿名的储值卡 ) 启用不同的营销活动 报价 启用不同联营机构的能力和跟踪 能够以 模块化方式改变配置计量的方式、应用计量的点、计量后的结果(包括开票以及 可能的暂停和/或拒绝访问)。基本上,可以将计量系统和相关能力打包为一个 随意 选项集合,以根据需要针对特定部署进行组合。在这种情况下,在单个面 向对象代码库中管理所有这些变体将非常困难。虽然面向对象编程允许模块化的 实现,但这需要巨大的模式密度,这会妨碍将来的扩展和改进,而且会越来越趋 向紧耦合。 AOP@Work: 使用方面的下几个步骤-学习建议之后(18)时间:2011-09-07 IBM Ron Bodkin编写可重用的方面 在多数情况下,构建好的方面库需要与构建好的库同样的技能和知识。特别 是,它需要域经验、好品味、技术(方面)经验,通常还需要系统编程知识(例 如,为了避免内存泄漏或支持线程安全的高并发度)。但是,比这些更重要的是 ,需要掌握一些新技能才能构建好的方面库: 一些以前的 AOP@Work 文章深入讨论过可重用的方面,特别是 “用 AspectJ 增强设计模式” “用 AspectJ 进行性能监视” “用 AspectJ 和 Spring 进行依赖项插入” 同样地,“使用 AspectJ 5 检验库方面” 讨论了编写可重用方面库时碰到 的问题。 可扩展性设计 首先,必须仔细计 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |