JavaBusinessDelegatePattern(業務代表模式)
業務代表模式(Business Delegate Pattern)用於對錶示層和業務層解耦。它基本上是用來減少通訊或對錶示層程式碼中的業務層程式碼的遠端查詢功能。在業務層中我們有以下實體。
- 客戶端(Client) – 表示層程式碼可以是 JSP、servlet 或 UI java 程式碼。
- 業務代表(Business Delegate) – 一個為客戶端實體提供的入口類,它提供了對業務服務方法的訪問。
- 查詢服務(LookUp Service) – 查詢服務物件負責獲取相關的業務實現,並提供業務物件對業務代表物件的訪問。
- 業務服務(Business Service) – 業務服務介面。實現了該業務服務的實體類,提供了實際的業務實現邏輯。
- 建立 BusinessService 介面。
/**
* 1. 建立 BusinessService 介面。
* @author mazaiting
*/
public interface BusinessService {
void doProcessing();
}
- 建立實體服務類
/**
* 2. 建立實體服務類。
* @author mazaiting
*/
public class EJBService implements BusinessService{
public void doProcessing() {
System.out.println("Processing task by invoking EJB Service");
}
}
/**
* 2. 建立實體服務類。
* @author mazaiting
*/
public class JMSService implements BusinessService{
public void doProcessing() {
System.out.println("Processing task by invoking JMS Service");
}
}
- 建立業務查詢服務。
/**
* 3. 建立業務查詢服務。
* @author mazaiting
*/
public class BusinessLookUp {
public BusinessService getBusinessService(String serviceType){
if (serviceType.equalsIgnoreCase("EJB")){
return new EJBService();
} else {
return new JMSService();
}
}
}
- 建立業務代表。
/**
* 4. 建立業務代表。
* @author mazaiting
*/
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. 建立客戶端。
* @author mazaiting
*/
public class Client {
BusinessDelegate businessDelegate;
public Client(BusinessDelegate businessDelegate){
this.businessDelegate = businessDelegate;
}
public void doTask(){
businessDelegate.doTask();
}
}
- 使用 BusinessDelegate 和 Client 類來演示業務代表模式。
/**
* 6. 使用 BusinessDelegate 和 Client 類來演示業務代表模式。
* @author mazaiting
*/
public class Test {
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
相關文章
- 極簡架構模式-業務代表模式架構模式
- 【SAP業務模式】之ICS(一):業務詳述模式
- 【SAP業務模式】之STO(一):業務背景和前臺操作模式
- 中介者設計模式——業務實踐設計模式
- 利用WMRouter 重新架構設計業務模式架構模式
- 【SAP業務模式】之ICS(五):定價配置模式
- 【SAP業務模式】之STO(二):系統配置模式
- 【SAP業務模式】之ICS(三):前臺操作模式
- 【SAP業務模式】之ICS(七):IDOC配置模式
- [翻譯]微服務設計模式 - 3. 按業務功能拆分模式微服務設計模式
- 業務驅動創新,傳統IDC如何破局舊有業務模式?模式
- 老焦專欄 | 用 RACI 模式梳理業務流程,提高業務釋出的效率模式
- 京東 App適配 iOS 暗黑模式業務實踐APPiOS模式
- 策略模式在PHP業務程式碼的實踐模式PHP
- 移動端閃屏廣告業務設計模式設計模式
- 策略模式在實際業務中的應用模式
- 策略模式在業務中的實際應用模式
- PHP策略模式在業務的實踐總結PHP模式
- 【SAP業務模式】之ICS(二):基礎資料模式
- 設計模式 | Catalog設計模式,抵禦業務方需求變動設計模式
- shell中代表空行的字元字元
- redhat as,ws,es代表什麼?Redhat
- 分散式系統解耦模式:用事件代表時間觸發Cron計劃任務分散式解耦模式事件
- DDD 中的那些模式 — 使用 Specification 管理業務規則模式
- 從聚合支付業務的設計來聊聊策略模式模式
- 介面卡設計模式(應用於活動業務)設計模式
- B2B電商交易平臺業務模式分析模式
- iOS開發模式MVVM 2分離業務邏輯iOS模式MVVM
- 農村土地流轉O2O:具有代表性的農村電商下鄉模式模式
- 裝飾者設計模式在業務中的實踐設計模式
- 低程式碼平臺搭建CRM 加速重構業務模式模式
- 【SAP業務模式】之ICS(四):組織單元的配置模式
- 【SAP業務模式】之ICS(六):發票輸出型別模式型別
- 自助式資料視覺化BI工具的代表作雲蛛系統的業務覆蓋及客戶視覺化
- 滴滴順風車今起全國下線 重新評估業務模式模式
- 決策表模式: 一種業務規則引擎實現方式模式
- python中的class代表什麼Python
- java class例項代表哪些結構Java