业务代表模式(Business Delegate Pattern)用于对表示层和业务层解耦。它基本上是用来减少通信或对表示层代码中的业务层代码的远程查询功能。在业务层中我们有以下实体。
//业务代表模式 public class BusinessRepresentativeMode { public static void main(String[] args) { BusinessDelegate businessDelegate = new BusinessDelegate(); businessDelegate.setBusinessServiceType("JMS"); Client client = new Client(businessDelegate); client.doTask(); businessDelegate.setBusinessServiceType("EJB"); client.doTask(); } } interface BusinessService { void doProcessing(); } //创建实体服务类。 class EJBService implements BusinessService { @Override public void doProcessing() { System.out.println("Processing task by invoking EJB Service"); } } class JMSService implements BusinessService { @Override public void doProcessing() { System.out.println("Processing task by invoking JMS Service"); } } //创建业务查询服务。 class BusinessLookUp { public BusinessService getBusinessService(String businessServiceType) { if (businessServiceType.equalsIgnoreCase("EJB")) { return new EJBService(); } return new JMSService(); } } //创建业务代表。 class BusinessDelegate { private BusinessLookUp businessLookUp = new BusinessLookUp(); private BusinessService businessService; private String businessServiceType; public void setBusinessServiceType(String businessServiceType) { this.businessServiceType = businessServiceType; } public void doTask() { businessService = businessLookUp.getBusinessService(businessServiceType); businessService.doProcessing(); } } class Client { private BusinessDelegate businessDelegate; public Client(BusinessDelegate businessDelegate) { this.businessDelegate = businessDelegate; } public void doTask() { businessDelegate.doTask(); } }
原文:https://www.cnblogs.com/xioayuan/p/15228189.html