- 設計模式教程
- 設計模式 - 首頁
- 設計模式 - 概述
- 設計模式 - 工廠模式
- 抽象工廠模式
- 設計模式 - 單例模式
- 設計模式 - 建造者模式
- 設計模式 - 原型模式
- 設計模式 - 介面卡模式
- 設計模式 - 橋接模式
- 設計模式 - 過濾器模式
- 設計模式 - 組合模式
- 設計模式 - 裝飾器模式
- 設計模式 - 外觀模式
- 設計模式 - 享元模式
- 設計模式 - 代理模式
- 責任鏈模式
- 設計模式 - 命令模式
- 設計模式 - 直譯器模式
- 設計模式 - 迭代器模式
- 設計模式 - 中介者模式
- 設計模式 - 備忘錄模式
- 設計模式 - 觀察者模式
- 設計模式 - 狀態模式
- 設計模式 - 空物件模式
- 設計模式 - 策略模式
- 設計模式 - 模板模式
- 設計模式 - 訪問者模式
- 設計模式 - MVC模式
- 業務委託模式
- 組合實體模式
- 資料訪問物件模式
- 前端控制器模式
- 攔截過濾器模式
- 服務定位器模式
- 傳輸物件模式
- 設計模式資源
- 設計模式 - 問答
- 設計模式 - 快速指南
- 設計模式 - 有用資源
- 設計模式 - 討論
設計模式 - 業務委託模式
業務委託模式用於解耦表示層和業務層。它主要用於減少表示層程式碼中對業務層程式碼的通訊或遠端查詢功能。在業務層中,我們有以下實體。
客戶端 - 表示層程式碼可能是JSP、servlet或UI Java程式碼。
業務委託 - 客戶端實體訪問業務服務方法的單一入口點類。
查詢服務 - 查詢服務物件負責獲取相關的業務實現,並向業務委託物件提供業務物件訪問。
業務服務 - 業務服務介面。具體類實現此業務服務以提供實際的業務實現邏輯。
實現
我們將建立一個客戶端、業務委託、業務服務、查詢服務、JMS服務和EJB服務,它們代表業務委託模式的各個實體。
我們的演示類BusinessDelegatePatternDemo將使用業務委託和客戶端來演示業務委託模式的使用。
步驟 1
建立BusinessService介面。
BusinessService.java
public interface BusinessService {
public void doProcessing();
}
步驟 2
建立具體的Service類。
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類來演示業務委託模式。
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
廣告