【設計模式】業務代表模式

來源:互聯網
上載者:User

標籤:

業務代表模式(Business Delegate Pattern)用於對錶示層和業務層解耦。它基本上是用來減少通訊或對錶示層代碼中的業務層代碼的遠程查詢功能。在業務層中我們有以下實體。

  • 用戶端(Client) - 展示層代碼可以是 JSP、servlet 或 UI java 代碼。
  • 業務代表(Business Delegate) - 一個為用戶端實體提供的入口類,它提供了對商務服務方法的訪問。
  • 查詢服務(LookUp Service) - 尋找服務物件負責擷取相關的業務實現,並提供業務對象對業務代表對象的訪問。
  • 商務服務(Business Service) - 商務服務介面。實現了該商務服務的實體類,提供了實際的業務實現邏輯。
實現

我們將建立 ClientBusinessDelegateBusinessServiceLookUpServiceJMSService 和 EJBService 來表示業務代表模式中的各種實體。

BusinessDelegatePatternDemo,我們的示範類使用 BusinessDelegate 和 Client 來示範業務代表模式的用法。

步驟 1

建立 BusinessService 介面。

public interface BusinessService {   public void doProcessing();}
步驟 2

建立實體服務類。

public class EJBService implements BusinessService {   @Override   public void doProcessing() {      System.out.println("Processing task by invoking EJB Service");   }}
public class JMSService implements BusinessService {   @Override   public void doProcessing() {      System.out.println("Processing task by invoking JMS Service");   }}
步驟 3

建立業務查詢服務。

public class BusinessLookUp {   public BusinessService getBusinessService(String serviceType){      if(serviceType.equalsIgnoreCase("EJB")){         return new EJBService();      }else {         return new JMSService();      }   }}
步驟 4

建立業務代表。

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

建立用戶端。

public class Client {       BusinessDelegate businessService;   public Client(BusinessDelegate businessService){      this.businessService  = businessService;   }   public void doTask(){              businessService.doTask();   }}
步驟 6

使用 BusinessDelegate 和 Client 類來示範業務代表模式。

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 ServiceProcessing task by invoking JMS Service

 

【設計模式】業務代表模式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.