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
相關文章
- 極簡架構模式-業務代表模式架構模式
- 幽默:ifelse代表業務邏輯
- 數字化運營轉型,誰代表業務?
- 分散式系統解耦模式:用事件代表時間觸發Cron計劃任務分散式解耦模式事件
- 家政服務行業新模式行業模式
- [翻譯]微服務設計模式 - 3. 按業務功能拆分模式微服務設計模式
- 招聘服務平臺商業模式模式
- 製藥行業的GxP代表什麼?行業
- 中介者設計模式——業務實踐設計模式
- 業務驅動創新,傳統IDC如何破局舊有業務模式?模式
- 利用WMRouter 重新架構設計業務模式架構模式
- 設計模式 | Catalog設計模式,抵禦業務方需求變動設計模式
- 老焦專欄 | 用 RACI 模式梳理業務流程,提高業務釋出的效率模式
- 策略模式在實際業務中的應用模式
- 策略模式在業務中的實際應用模式
- PHP策略模式在業務的實踐總結PHP模式
- 策略模式在PHP業務程式碼的實踐模式PHP
- IDC:2018年中國金融行業雲及服務市場代表性廠商評估行業
- AI人工智慧的業務模式不同於傳統軟體,實則是一種服務型企業模式 -Andreessen HorowitzAI人工智慧模式
- 移動端閃屏廣告業務設計模式設計模式
- 從聚合支付業務的設計來聊聊策略模式模式
- 京東 App適配 iOS 暗黑模式業務實踐APPiOS模式
- DDD 中的那些模式 — 使用 Specification 管理業務規則模式
- 娛樂休閒服務平臺商業模式解析模式
- 家政服務平臺的商業模式是什麼模式
- 通過改變業務模型的預留模式避免分散式事務 - CodeOpinion模型模式分散式
- 介面卡設計模式(應用於活動業務)設計模式
- RPA風潮下企業財務工作模式的變革模式
- 裝飾者設計模式在業務中的實踐設計模式
- 低程式碼平臺搭建CRM 加速重構業務模式模式
- B2B電商交易平臺業務模式分析模式
- 阿里云云通訊作為 CPaaS 全球代表服務商,上榜 Gartner 報告阿里
- 亞信安全首推MSP創新型合作伙伴業務模式助力企業暢享雲端快捷服務模式
- 健康醫療服務平臺的商業模式是什麼模式
- 決策表模式: 一種業務規則引擎實現方式模式
- 自助式資料視覺化BI工具的代表作雲蛛系統的業務覆蓋及客戶視覺化
- 服務容錯模式模式
- 業務能力、業務功能、業務流程、業務服務及業務模型到底有什麼區別?模型
- Esac代表什麼意義?