1. aspectJ是什么?
AspectJ 是对java编程语言简单且实用的扩展,它增加了Java面向方面编程(AOP)的能力。AOP允许开发人员 从跨越模块化的自然单元的关注中获得(to reap)模块化的好处。简单的来说,就是AOP允许开发人员,在不改变原有模块的逻辑基础上,增加业务逻辑处理。在像Java这样的面向对象程序中,自然单元模块指的是类。而在AspectJ中,方面可以使(属于某一个类的)影响不止一个类的关注点模块化。 实际开发中,开发者可以使用AspectJ编译器,(提供了一个小的(<100K)运行时库,可能要求使用支持的开发环境)编译程序,然后运行它。 AspectJ技术包括了一个ajc编译器、ajdb调试器、ajdoc文档生成器和ajbrowser程序结构浏览器,同时内置与Eclipse、Sun-ONE/Netbeans、GUN Emacs/XEmacs、JBuilds和Ant中。
2. 使用AspectJ益处有哪些?
AspectJ 可以用来改善软件系统的模块化。使用简单的Java类,很难模块化设计下面这样的问题(concerns): - 系统级错误处理 - 合约执行 - 分布问题 - 特征变化 - 上下文敏感行为 - 持久化 - 测试
这些问题的代码往往在整个系统中分散开来。因为这些问题不会留在任何一个模块边界内,可以说 这些问题横切了系统的模块性。AspectJ向Java添加了构造,使得能够模块化的实现横切关注点(横切问题)。这个能力是格外有价值的,因为横切关注点往往是复杂的和很少小范围的,这样使得很难去处理他们。
注: crosscutting concerns 翻译成横切关注点,这样翻译应该是大多数的,我个人觉得这里的concerns 翻译成“问题”应该更通俗和容易理解点。
待续。。。
新闻热点
疑难解答