业务层设计之一(BusinessDelegate)_第1页
业务层设计之一(BusinessDelegate)_第2页
业务层设计之一(BusinessDelegate)_第3页
业务层设计之一(BusinessDelegate)_第4页
业务层设计之一(BusinessDelegate)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、业务层设计之一(BusinessDelegate)业务层设计之一 (BusinessDelegate)Business Delegate( 业务代表 )问题当客户端直接访问远程业务服务组件时,可能发生以下问题。降低了系统的灵活性。 客户端代码随着业务服务接口的代码的改变而改变。紧耦合。降低了系统的网络传输性能。 一个操作需要进行多次细粒度的远程交互。客户端包含底层架构代码。 包括 JNDI, 网络连接故障处理,重试逻辑等等。动机降低客户端与业务服务层的耦合度, 从而隐藏服务层的具体实现细节。把网络异常信息转译成应用程序异常, 或者是用户使用异常。业务代表可以向 web 层提供请求的缓冲机制,提

2、高性能。例如可以缓存远程接口。当服务层发生故障时, 业务代表可以透明地重试或恢复操作,无需让客户端知道。为业务层提供一个简单, 统一的接口。 业务代表以一个 POJO 形式实现。隐藏远程性。 避免不必要的远程服务调用。 位置透明性。引入代理层。 增加了复杂性, 降低了可维护性。 但收益远抵消了弊病。结构客户端(Action) -业务代表-查找服务(ServletLocator) -业务服务请参照 :服务定位器模式,会话门面模式,代理模式。示例在 petStore 中 ShoppingClientControllerWebImpl其实就是一个业务代表的例子。public class Shoppi

3、ngClientControllerWebImplprivate ShoppingClientController sccEjb; private HttpSession session;public ShoppingClientControllerWebImpl() public ShoppingClientControllerWebImpl(HttpSession session) this.session = session;ModelManager mm =(ModelManager)session.getAttribute(WebKeys.ModelManagerKey);sccEj

4、b = mm.getSCCEJB();public synchronized ShoppingCart getShoppingCartEJB() try return sccEjb.getShoppingCart(); catch (EStoreAppException ce) throw newGeneralFailureException(ce.getMessage(); catch (RemoteException re) throw newGeneralFailureException(re.getMessage();public synchronized Customer getCustomerEJB()try return sccEjb.getCustomer(); catch (EStoreAppException fe) throw newGeneralFailureException(fe.getMessage(); catch (RemoteException re) throw newGeneralFailureException(re.getMessage();/.public synchronized void remove() try sccEjb.remove(); catch(R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论