二十七、业务代表模式
业务代表模式,Business Delegate Pattern,主要用于表示层与业务层的解耦。
简介
业务代表模式为客户端类,提供一个查询访问业务的接口,而不暴露过多的内部业务逻辑。
实现
创建一个客户端实体类Client,以及业务类、服务接口和代表类。
- 创建客户端类
Client.java
/**
* Created by thinkpad on 16-12-11.
* 客户端类
*/
public class Client {
BusinessDelegate businessService;
public Client(BusinessDelegate businessService){
this.businessService = businessService;
}
public void doTask(){
businessService.doTask();
}
}
- 创建业务服务接口
IBusinessServicejava
/**
* Created by thinkpad on 16-12-11.
* 业务服务接口
*/
public interface IBusinessService {
public void doProcessing();
}
- 创建业务实现类
EJBService.java
/**
* Created by thinkpad on 16-12-11.
* 具体的业务实现类
*/
public class EJBService implements IBusinessService{
@Override
public void doProcessing() {
System.out.println("EJB服务");
}
}
JMSService.java
/**
* Created by thinkpad on 16-12-11.
* 具体的业务实现类
*/
public class JMSService implements IBusinessService{
@Override
public void doProcessing() {
System.out.println("JMS服务");
}
}
创建业务代理类
Business Delegate.java/** * Created by thinkpad on 16-12-11. * 业务代表类 */ public class BusinessDelegate { private BusinessLookup lookupService = new BusinessLookup(); private IBusinessService businessService; private String serviceType; // public void setServiceType(String serviceType){ this.serviceType = serviceType; } // public void doTask(){ businessService = lookupService.getBusinessService(serviceType); businessService.doProcessing(); } }业务查询类
BusinessLookup.java/** * Created by thinkpad on 16-12-11. * 业务查询服务类 */ public class BusinessLookup { //根据选择的服务类型,返回所需服务 public IBusinessService getBusinessService(String serviceType){ if (serviceType.equalsIgnoreCase("EJB")){ return new EJBService(); }else{ return new JMSService(); } } }演示
BusinessDelegatePatternDemo.java
/**
* Created by thinkpad on 16-12-11.
* 演示类
*/
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();
}
}
- 输出
EJB服务
JMS服务
本文介绍了一种用于解耦表示层与业务层的设计模式——业务代表模式。通过客户端类与业务代表类的配合,该模式实现了业务逻辑的隐藏,提高了系统的灵活性。文章详细展示了模式的具体实现过程,包括客户端类、业务服务接口、业务实现类、业务代表类和业务查询类的定义。
4760

被折叠的 条评论
为什么被折叠?



