课程表

设计模式课程

工具箱
速查手册

业务代表模式

当前位置:免费教程 » Java相关 » 设计模式

业务代表模式(Business Delegate Pattern)用于对表示层和业务层解耦。它基本上是用来减少通信或对表示层代码中的业务层代码的远程查询功能。在业务层中我们有以下实体。

  • 客户端(Client) - 表示层代码可以是 JSP、servlet 或 UI java 代码。
  • 业务代表(Business Delegate) - 一个为客户端实体提供的入口类,它提供了对业务服务方法的访问。
  • 查询服务(LookUp Service) - 查找服务对象负责获取相关的业务实现,并提供业务对象对业务代表对象的访问。
  • 业务服务(Business Service) - 业务服务接口。实现了该业务服务的实体类,提供了实际的业务实现逻辑。

实现

我们将创建 ClientBusinessDelegateBusinessServiceLookUpServiceJMSServiceEJBService 来表示业务代表模式中的各种实体。

BusinessDelegatePatternDemo,我们的演示类使用 BusinessDelegateClient 来演示业务代表模式的用法。

业务代表模式的 UML 图

步骤 1

创建 BusinessService 接口。

BusinessService.java

  1. public interface BusinessService {
  2. public void doProcessing();
  3. }

步骤 2

创建实体服务类。

EJBService.java

  1. public class EJBService implements BusinessService {
  2.  
  3. @Override
  4. public void doProcessing() {
  5. System.out.println("Processing task by invoking EJB Service");
  6. }
  7. }

JMSService.java

  1. public class JMSService implements BusinessService {
  2.  
  3. @Override
  4. public void doProcessing() {
  5. System.out.println("Processing task by invoking JMS Service");
  6. }
  7. }

步骤 3

创建业务查询服务。

BusinessLookUp.java

  1. public class BusinessLookUp {
  2. public BusinessService getBusinessService(String serviceType){
  3. if(serviceType.equalsIgnoreCase("EJB")){
  4. return new EJBService();
  5. }else {
  6. return new JMSService();
  7. }
  8. }
  9. }

步骤 4

创建业务代表。

BusinessDelegate.java

  1. public class BusinessDelegate {
  2. private BusinessLookUp lookupService = new BusinessLookUp();
  3. private BusinessService businessService;
  4. private String serviceType;
  5.  
  6. public void setServiceType(String serviceType){
  7. this.serviceType = serviceType;
  8. }
  9.  
  10. public void doTask(){
  11. businessService = lookupService.getBusinessService(serviceType);
  12. businessService.doProcessing();
  13. }
  14. }

步骤 5

创建客户端。

Student.java

  1. public class Client {
  2. BusinessDelegate businessService;
  3.  
  4. public Client(BusinessDelegate businessService){
  5. this.businessService = businessService;
  6. }
  7.  
  8. public void doTask(){
  9. businessService.doTask();
  10. }
  11. }

步骤 6

使用 BusinessDelegate 和 Client 类来演示业务代表模式。

BusinessDelegatePatternDemo.java

  1. public class BusinessDelegatePatternDemo {
  2. public static void main(String[] args) {
  3.  
  4. BusinessDelegate businessDelegate = new BusinessDelegate();
  5. businessDelegate.setServiceType("EJB");
  6.  
  7. Client client = new Client(businessDelegate);
  8. client.doTask();
  9.  
  10. businessDelegate.setServiceType("JMS");
  11. client.doTask();
  12. }
  13. }

步骤 7

验证输出。

Processing task by invoking EJB Service
Processing task by invoking JMS Service
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号