长篇连载 ,如何一次通过310-083考试

pass 310-083 (005 - design pattern)

上一篇 / 下一篇  2008-09-16 12:23:12 / 个人分类:Certification_SCWCD5

第四种设计模式Business Delegate


        概述:在业务层不断更新变化,改朝换代的今天,你一定不想原本使用EJB2.0的系统,当需要改进到EJB3.0技术,或者hibernate的时候,重写全部的表示层跟业务层的连接部分代码,这个时候,Business Delegate会帮你非常大的忙。因为它正如他的名字一样,是一个代理,专门处理展示层根业务层之间的部分。展示层把请求发送到Business Delegate组件,由他来控制转发给相应的业务处理组件。

 

           应用:当所有的业务处理核心部署在EJB服务器端,也就是当表现层需要多次调用EJB远程接口的时候,或者是业务层在以后有可能要换掉的时候。通过调用Business Delegate组件的本身方法,可以统一EJB的远程调用次数,同时还可以暂存处理结果。

 

 

           优点:可以减少商业的EJB远程接口的调用次数,把多次不同的请求细节封装为一个简单的对象上的方法,这样使得表现层对于业务层的调用非常简单。由于本身代理了所有的请求,所以减少了耦合度,需要变化的时候,只需要修改Business Delegate组件本身即可,无需改动业务层代码。如果需要修改以后的业务层架构技术,比如换去Hibernate,前面的表现层无需修改代码,因为它只是访问Business Delegate对象的java方法而已哦!

           缺点:代理作为一个层,必然会增加总体的JavaEE的复杂度,这样对于本来已经不算简单的应用再次增加了复杂程度。如果要使用,记得找好平衡点。

           举例:一个连锁酒店的网络订房系统,就可以采用这个设计模式,因为有可能在全国各地都有分店,这样整套程序就采用JavaEE,而把处理具体处理预定房间的业务(计算天数,人数,价格,信用卡支付等)放在业务层,表现层只需要调用business delegate组件的book()方法,就可以实现以上的总体功能。不然我们需要分别调用很多的远程EJB的接口调用,比如calculateTotalPrice(), paymentByCreditCard()等。

           考试:

Reduces Coupling, Improves Manageability

Translates Business Service Exceptions

Implements Failure Recovery and Thread Synchronization

Exposes Simpler, Uniform. Interface to Business Tier

Impacts Performance

Introduces Additional Layer

Hides Remoteness

Reduce line of codes in application.



TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2009-01-09  
    123
45678910
11121314151617
18192021222324
25262728293031

我的存档

数据统计

  • 访问量: 523
  • 日志数: 10
  • 建立时间: 2008-09-09
  • 更新时间: 2008-09-25

RSS订阅

Open Toolbar