业务代表模式
基本介绍
1.对表示层和业务层解耦,用来减少通信或对表示层代码中的业务层代码的远程查询功能
2.角色
(1)Client:客户端的表示层代码可以是 JSP、servlet 或 UI java 代码
(2)Business Delegate:业务代表,一个为 Client 提供的入口类,提供了对业务服务方法的访问
(3)LookUp Service:查询服务,查找服务对象负责获取相关的业务实现,并提供业务对象对业务代表对象的访问
(4)Business Service:业务服务,实现了该业务服务的实体类,提供了实际的业务实现逻辑
代码示例
public class Client {//客户端
public static void main(String[] args) {
BusinessDelegate businessDelegate = new BusinessDelegate();
businessDelegate.setServiceType("EJB");
businessDelegate.doTask();
businessDelegate.setServiceType("JMS");
businessDelegate.doTask();
}
}
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();
}
}
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 serviceType) {
if (serviceType.equalsIgnoreCase("EJB")) {
return new EJBService();
} else {
return new JMSService();
}
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战