zoukankan      html  css  js  c++  java
  • 业务代表模式

    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

  • 相关阅读:
    Java暑期学习第三十一天日报
    使用dataadapter和dataset更新数据库
    一些很酷的.Net技
    一个阴历阳历互相转化的类(c#农历)
    详细讲解简洁、明晰!数据库设计三大范式应用实例
    WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题解决方案
    CONVERT函数方法大全(经验总结)
    使用C#将字符串转换成十六进制以及其逆转换
    List myList = new List()有关的方法及属性
    C#实现P2P之UDP穿透NAT及其原理讲解11
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/10744592.html
Copyright © 2011-2022 走看看