业务代表模式

1.业务代表模式简介

业务代表模式(Business Delegate Pattern)用于对表示层和业务层解耦。它基本上是用来减少通信或对表示层代码中的业务层代码的远程查
询功能。在业务层中我们有以下实体。
客户端(Client) - 表示层代码可以是 JSP、servlet 或 UI java 代码。
业务代表(Business Delegate) - 一个为客户端实体提供的入口类,它提供了对业务服务方法的访问。
查询服务(LookUp Service) - 查找服务对象负责获取相关的业务实现,并提供业务对象对业务代表对象的访问。
业务服务(Business Service) - 业务服务接口。实现了该业务服务的实体类,提供了实际的业务实现逻辑。

2.Demo示例

我们将创建 Client、BusinessDelegate、BusinessService、LookUpService、JMSService 和 EJBService 来表示业务代表模式中的各种实体。
BusinessDelegatePatternDemo,我们的演示类使用 BusinessDelegate 和 Client 来演示业务代表模式的用法。

interface BusinessService {
    void doProcess();
}

class EJBService implements BusinessService {
    public void doProcess() {
        System.out.println("Process from EJBService");
    }
}

class JMSService implements BusinessService {
    public void doProcess() {
        System.out.println("Process from JMSService");
    }
}

class BusinessLockup {
    public static BusinessService getService(String serviceType) {
        if (serviceType.equalsIgnoreCase("EJB")) {
            return new EJBService();
        } else {
            return new JMSService();
        }
    }
}

class BusinessDelegate {
    private String serviceType;
    private BusinessService businessService;

    public void setServiceType(String serviceType) {
        this.serviceType = serviceType;
    }

    public void process() {
        businessService = BusinessLockup.getService(serviceType);
        businessService.doProcess();
    }
}

class Client {
    private BusinessDelegate delegate;

    public Client(BusinessDelegate delegate) {
        this.delegate = delegate;
    }

    public void doTask() {
        delegate.process();
    }
}

public class DelegatePatternDemo {
    public static void main(String args[]) {
        BusinessDelegate delegate = new BusinessDelegate();
        delegate.setServiceType("EJB");
        Client client1 = new Client(delegate);
        client1.doTask();

        delegate.setServiceType("JMS");
        Client client2 = new Client(delegate);
        client2.doTask();
    }
}

参考:http://www.runoob.com/design-pattern/business-delegate-pattern.html

原文地址:https://www.cnblogs.com/hellokitty2/p/10744592.html

时间: 2024-11-05 15:55:59

业务代表模式的相关文章

【设计模式】业务代表模式

业务代表模式(Business Delegate Pattern)用于对表示层和业务层解耦.它基本上是用来减少通信或对表示层代码中的业务层代码的远程查询功能.在业务层中我们有以下实体. 客户端(Client) - 表示层代码可以是 JSP.servlet 或 UI java 代码. 业务代表(Business Delegate) - 一个为客户端实体提供的入口类,它提供了对业务服务方法的访问. 查询服务(LookUp Service) - 查找服务对象负责获取相关的业务实现,并提供业务对象对业务

Java业务代理模式~

业务代理模式用于解耦表示层和业务层. 它基本上用于减少表示层代码中的业务层代码的通信或远程查找功能.在业务层有以下实体. 客户端(Client) - 表示层代码可以是JSP,servlet或UI java代码. 业务代理 - 为客户端实体提供对业务服务方法的访问的单个入口点类. 查找服务 - 查找服务对象负责获得相关业务的实施和提供业务的委托对象业务对象的访问. 业务服务 - 业务服务接口. 具体类实现这个业务服务以提供实际的业务实现逻辑. 实现实例 在这个实现实例中,将创建一个业务代理模式的各

设计模式-概述

设计模式概述 设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案. 设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了重用代码.让代码更容易被他人理解.保证代码可靠性. 面向对象设计模式 面向对象设计模式描述了类与相互通信的对象之间的组织关系.目的是应对变化.提高复用.减少改变. 对象 1.从概念层面讲,对象是某种拥有职责的抽象: 2.从规格层面讲,对象是一系列可以被其他对象使用的公共接口: 3.从语言实现层面来看,对象封装了代码和数据(也

关于学习的自我感想

我总是会一味的辜负“学以致用,每天沉醉于学习的生活中不能自拔”两个字眼里.其实在学习阶段,我们最重要的是理解,和多练. 可是我有时候理解了,就会以为自己可以不用练了.结果等到真正上手的时候才知道,一脸懵逼. 这种感觉很不好,我必须改掉这个坏习惯.有人会问:你是用什么方法学习的? 我整天都是不学无术.什么都想去了解,什么都想去尝试.不会的就过一遍就好.知道有那个东西,那个东西是什么就行. 我这样是不是会步入黑客的道路,我不知道未来会怎么样,我只知道如果我不学习就一定没有未来.所谓技多不压身嘛. 我

Apache OFbiz service engine 源代码解读

上一篇看完了ofbiz entity engine,这篇再来过一下ofbiz的service engine.service engine层在设计模式的使用上跟entity engine有些相似,最典型的就是"业务代表"模式.service engine跟entity engine是紧密相关的,大部分的业务系统所要运行的服务都是跟关系数据库相关的. service engine对于服务编写的方式有着很广泛的"自由",你能够选择它内置引擎支持的不论什么一种方式来编写服务

设计模式浅谈之----设计模式简介

1.何为设计模式 设计模式是一个通过定义.使用和测试去解决特定问题的方法,并且由于设计模式是在面向对象之后为人所知的,基本思想与面向对象不可分割. 在软件工程中,设计模式是一般只在给定条件下会重复性发生问题而提出的一种通用的解决方案. 2.设计模式简史 设计模式的概念在计算机科学领域的普及主要归功于1994年<设计模式:可复用面向对象的软件的基础>,作者GoF(即Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides 四人) 3.设计模式

大话设计模式

根据设计模式的参考书 中所提到的,总共有 23 种设计模式.这些模式可以分为三大类:创建型模式(Creational Patterns).结构型模式(Structural Patterns).行为型模式(Behavioral Patterns) 创建型模式 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用新的运算符直接实例化对象.这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活. 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Facto

项目中常用的设计模式

本文为博主原创,允许转载,但请声明原文地址:http://www.coselding.cn/blog/4/4-117.html 业务代表模式:(相同接口的不同实现的查询选择方式) 步骤: 业务接口: 业务接口实现,多个: 业务接口实现的查询类,根据关键字查询相应的接口实现类: 业务代表:维护一个业务查询类和一个业务接口引用,关键字设置,执行方法中根据关键字获得业务实现类的引用,并使用业务执行相应的功能: 业务发出者通过业务代表即可实现相应的业务处理,需要实现设置关键字. 组合实体模式:(复杂实体

设计模式 总结

回顾一下曾经学了又忘的差不多的知识点,在此记录一下,以便日后温习. 参考资料:http://www.runoob.com/design-pattern/design-pattern-intro.html 持续更新中... 设计模式简介 概述: 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用.设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案. 设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验的总结. 目的: