- 设计模式教程
- 设计模式 - 首页
- 设计模式 - 概述
- 设计模式 - 工厂模式
- 抽象工厂模式
- 设计模式 - 单例模式
- 设计模式 - 建造者模式
- 设计模式 - 原型模式
- 设计模式 - 适配器模式
- 设计模式 - 桥接模式
- 设计模式 - 过滤器模式
- 设计模式 - 组合模式
- 设计模式 - 装饰器模式
- 设计模式 - 外观模式
- 设计模式 - 享元模式
- 设计模式 - 代理模式
- 责任链模式
- 设计模式 - 命令模式
- 设计模式 - 解释器模式
- 设计模式 - 迭代器模式
- 设计模式 - 中介者模式
- 设计模式 - 备忘录模式
- 设计模式 - 观察者模式
- 设计模式 - 状态模式
- 设计模式 - 空对象模式
- 设计模式 - 策略模式
- 设计模式 - 模板模式
- 设计模式 - 访问者模式
- 设计模式 - MVC模式
- 业务委托模式
- 组合实体模式
- 数据访问对象模式
- 前端控制器模式
- 拦截过滤器模式
- 服务定位器模式
- 传输对象模式
- 设计模式资源
- 设计模式 - 问答
- 设计模式 - 快速指南
- 设计模式 - 有用资源
- 设计模式 - 讨论
设计模式 - 业务委托模式
业务委托模式用于解耦表示层和业务层。它主要用于减少表示层代码中对业务层代码的通信或远程查找功能。在业务层中,我们有以下实体。
客户端 - 表示层代码可能是JSP、servlet或UI Java代码。
业务委托 - 客户端实体访问业务服务方法的单一入口点类。
查找服务 - 查找服务对象负责获取相关的业务实现,并向业务委托对象提供业务对象访问。
业务服务 - 业务服务接口。具体类实现此业务服务以提供实际的业务实现逻辑。
实现
我们将创建一个客户端、业务委托、业务服务、查找服务、JMS服务和EJB服务,它们代表业务委托模式的各个实体。
我们的演示类BusinessDelegatePatternDemo将使用业务委托和客户端来演示业务委托模式的使用。
步骤 1
创建BusinessService接口。
BusinessService.java
public interface BusinessService { public void doProcessing(); }
步骤 2
创建具体的Service类。
EJBService.java
public class EJBService implements BusinessService { @Override public void doProcessing() { System.out.println("Processing task by invoking EJB Service"); } }
JMSService.java
public class JMSService implements BusinessService { @Override public void doProcessing() { System.out.println("Processing task by invoking JMS Service"); } }
步骤 3
创建业务查找服务。
BusinessLookUp.java
public class BusinessLookUp { public BusinessService getBusinessService(String serviceType){ if(serviceType.equalsIgnoreCase("EJB")){ return new EJBService(); } else { return new JMSService(); } } }
步骤 4
创建业务委托。
BusinessDelegate.java
public class BusinessDelegate { private BusinessLookUp lookupService = new BusinessLookUp(); private BusinessService businessService; private String serviceType; public void setServiceType(String serviceType){ this.serviceType = serviceType; } public void doTask(){ businessService = lookupService.getBusinessService(serviceType); businessService.doProcessing(); } }
步骤 5
创建客户端。
Client.java
public class Client { BusinessDelegate businessService; public Client(BusinessDelegate businessService){ this.businessService = businessService; } public void doTask(){ businessService.doTask(); } }
步骤 6
使用BusinessDelegate和Client类来演示业务委托模式。
BusinessDelegatePatternDemo.java
public class BusinessDelegatePatternDemo { public static void main(String[] args) { BusinessDelegate businessDelegate = new BusinessDelegate(); businessDelegate.setServiceType("EJB"); Client client = new Client(businessDelegate); client.doTask(); businessDelegate.setServiceType("JMS"); client.doTask(); } }
步骤 7
验证输出。
Processing task by invoking EJB Service Processing task by invoking JMS Service
广告