ITPub博客

首页 > Linux操作系统 > Linux操作系统 > pass 310-083 (005 - design pattern)

pass 310-083 (005 - design pattern)

原创 Linux操作系统 作者:powerbat 时间:2008-09-16 12:23:12 0 删除 编辑
第四种设计模式 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

Normal 0 false false false EN-US ZH-CN X-NONEReduce line of codes in application.


225526_200809161224361.jpg

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/225526/viewspace-448562/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-09-09

  • 博文量
    10
  • 访问量
    7477