WEB开发网
开发学院WEB开发Jsp AspectJ: 通往AOSD之路的最佳军火 阅读

AspectJ: 通往AOSD之路的最佳军火

 2008-01-05 08:26:47 来源:WEB开发网   
核心提示:同步自:http://www.blogjava.net/AndersLin/archive/2006/06/24/54806.Html 在

同步自:http://www.blogjava.net/AndersLin/archive/2006/06/24/54806.Html

在AOSD:应用AOP实现业务逻辑中, 我提出关注的接口;
其原文在javaeye上的讨论狼平方也提出可以用event,或者intercepter。
当然不同的方式可以解决不同的问题。这里要讨论一下aspectJ和Event以及intercepter的不同。

1. 先来看看event的方式:需要两个对象Event和EventHandler(EventListener),event和eventHandler,属于数据契约。换句话说,牺牲了编译检查的好处,当然可以应对变化时有一定的好处。一旦需求变化,代码上的变动需要的工作量不少,更为严重的是,如狼平方所说的侵入性太强。
2  接着看interceptor的AOP,相对于Event方式,虽然都是基于数据契约,都给自己做转型,但是代码量少了(因为代码生成),重要的是没有event那样的侵入性。
3. 狼平方做了改进,利用AOP来做brocastEvent的工作。需要做的工作还是很多,甚至我以为这个工作还不如直接用Interceptor来得直接。

   如我在小议领域模型(Domain Model) 所说的Domain Service处理两个逻辑:业务规则和流程逻辑,而AOSD:应用AOP实现业务逻辑要试图解决的问题是流程上逻辑,而以上无论是那种方式,都无法解决一个问题:流程信息。
假定现有两个流程如下:

Word-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">AspectJ: 通往AOSD之路的最佳军火(图一) AspectJ: 通往AOSD之路的最佳军火(图二) public   class  DomainService  AspectJ: 通往AOSD之路的最佳军火(图三) {
AspectJ: 通往AOSD之路的最佳军火(图四)AspectJ: 通往AOSD之路的最佳军火(图五)   public   void  bizPRocessA() AspectJ: 通往AOSD之路的最佳军火(图三) {
AspectJ: 通往AOSD之路的最佳军火(图六)    AspectJ: 通往AOSD之路的最佳军火(图三)
AspectJ: 通往AOSD之路的最佳军火(图六)    SomeObject instance  =  doSomeAction(AspectJ: 通往AOSD之路的最佳军火(图三));
AspectJ: 通往AOSD之路的最佳军火(图六)    AspectJ: 通往AOSD之路的最佳军火(图三)
AspectJ: 通往AOSD之路的最佳军火(图七)  }
AspectJ: 通往AOSD之路的最佳军火(图六)
AspectJ: 通往AOSD之路的最佳军火(图四) AspectJ: 通往AOSD之路的最佳军火(图五)   public   void  bizProcessB() AspectJ: 通往AOSD之路的最佳军火(图三) {
AspectJ: 通往AOSD之路的最佳军火(图六)    AspectJ: 通往AOSD之路的最佳军火(图三)
AspectJ: 通往AOSD之路的最佳军火(图六)    SomeObject instance  =  doSomeAction(AspectJ: 通往AOSD之路的最佳军火(图三));
AspectJ: 通往AOSD之路的最佳军火(图六)    AspectJ: 通往AOSD之路的最佳军火(图三)
AspectJ: 通往AOSD之路的最佳军火(图七)  }
AspectJ: 通往AOSD之路的最佳军火(图四) AspectJ: 通往AOSD之路的最佳军火(图五)   public  SomeObject doSomeAction(AspectJ: 通往AOSD之路的最佳军火(图三)) AspectJ: 通往AOSD之路的最佳军火(图三) {
AspectJ: 通往AOSD之路的最佳军火(图六)    AspectJ: 通往AOSD之路的最佳军火(图三)
AspectJ: 通往AOSD之路的最佳军火(图七)  }
AspectJ: 通往AOSD之路的最佳军火(图八)}


Tags:AspectJ 通往 AOSD

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接