Business Delegate(业务代理) Business Delegate模式又称业务代理模式,它建议在多层分布式的应用中,在表示层和逻辑业务处理层之间增加一个代理层,通过该代理层,隐藏业务处理层的实现细节以及实现对业务逻辑的透明调用。 Business Delegate模式介绍 我们从问题,解决方法,策略,优点等几个方面介绍Business Delegate模式。最后给出Business Delegate的相关联结。 问题 在分布式的多层应用系统中,需要进行远程方法调用以及跨层数据接收。表示层组件如果直接与远程业务逻辑处理组件交互,将存在以下问题: - 业务逻辑处理层的实现细节将暴露给表示层组件,这样,一旦业务层的实现方法发生改变,表示层组件的代码也不得不跟着改变。比如业务逻辑的实现由EJB2.0改由EJB3.0实现的时候。 - 当表示层组件与业务逻辑处理组件分别位于不同的网络环境中时,直接访问或调用将引起过多的网络访问,影响系统的执行效率。 - 服务逻辑处理层的API的开放将导致表示层组件紧密依靠特定的技术实现比如EJB。 解决方法 Use a Business Delegate to reduce coupling between presentation-tier clients and business services. The Business Delegate hides the underlying implementation details of the business service, such as lookup and access details of the EJB architecture. 使用Business Delegate(业务代理)来减少表示层与业务逻辑层之间的耦合性,通过Business Delegate隐藏业务逻辑层的实现细节比如lookup以及对EJB的访问细节等,或者其他处理比如对数据或操作的缓存等。 策略 Business Delegate模式有多种实现策略: Delegate Proxy Strategy Delegate Business通过Proxy模式实现。参考文末联结。 Delegate Adapter Strategy Delegate Business通过Adapter模式实现。参考文末联结。 优点: 使用Business Delegate模式有以下好处: - 减少表示层与业务逻辑层之间的耦合性。Delegate Business隐藏了业务逻辑层的实现细节,表示层可以通过Delegate Business透明地访问业务逻辑层组件。 - 集中控制管理能力。表示层对业务逻辑层的访问集中在Delegate Business里进行,一旦业务逻辑发生变化,只需集中修改Delegate Business即可,不会影响表示层代码。 - 错误接管与转换能力。Delegate Business可以catch来自业务逻辑层的网络异常等,并将其转换为表示层易理解的business异常。 - 因为Delegate Business的集中管理,可以在Delegate Business里做一些诸如缓存,线程同步等共通处理。 - 隐藏远程调用远层实现等细节。 - 具有对表示层更友好的接口。Delegate Business可以根据需要,提供给表示层更友好的接口。 。。。。。。