业务代表模式用于对表示层和业务层解耦。它基本上是用来减少通信或对表示层代码中的业务层代码的远程查询函数。在业务层中无涯教程有以下实体。
客户(Client)端 - 表示层代码可以是JSP,Servlet或UI Java代码。
业务代表(Business Delegate) - 客户实体的单一入口点类,用于提供对业务服务方法的访问。
查找服务(LookUp Service ) - 查找服务对象负责获取相关的业务实现,并提供对业务委托对象的业务对象访问权限。
业务服务(Business Service) - 业务服务界面。具体的类实现此业务服务以提供实际的业务实现逻辑。
将创建一个 Client , BusinessDelegate , BusinessService , LookUpService , JMSService 和 EJBService 代表业务代表模式的各种实体。
演示类 BusinessDelegatePatternDemo 将使用 BusinessDelegate 和 Client 来演示Business Delegate模式的使用。
第1步 - 创建BusinessService接口。
BusinessService.java
public interface BusinessService { public void doProcessing(); }
第2步 - 创建具体的服务类。
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类来演示Business Delegate模式。
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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)