业务代表模式

基本介绍

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();
        }
    }
}

 

posted @   半条咸鱼  阅读(49)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示