設(shè)計(jì)模式-業(yè)務(wù)代表模式

業(yè)務(wù)代表模式

業(yè)務(wù)代表模式(Business Delegate Pattern)用于對(duì)表示層和業(yè)務(wù)層解耦蛤铜。它基本上是用來(lái)減少通信或?qū)Ρ硎緦哟a中的業(yè)務(wù)層代碼的遠(yuǎn)程查詢功能官研。在業(yè)務(wù)層中我們有以下實(shí)體。

  • 客戶端(Client) - 表示層代碼可以是 JSP泻骤、servlet 或 UI java 代碼漆羔。
    業(yè)務(wù)代表(Business Delegate) - 一個(gè)為客戶端實(shí)體提供的入口類,它提供了對(duì)業(yè)務(wù)服務(wù)方法的訪問狱掂。
  • 查詢服務(wù)(LookUp Service) - 查找服務(wù)對(duì)象負(fù)責(zé)獲取相關(guān)的業(yè)務(wù)實(shí)現(xiàn)演痒,并提供業(yè)務(wù)對(duì)象對(duì)業(yè)務(wù)代表對(duì)象的訪問。
  • 業(yè)務(wù)服務(wù)(Business Service) - 業(yè)務(wù)服務(wù)接口符欠。實(shí)現(xiàn)了該業(yè)務(wù)服務(wù)的實(shí)體類嫡霞,提供了實(shí)際的業(yè)務(wù)實(shí)現(xiàn)邏輯。

實(shí)現(xiàn)

我們將創(chuàng)建 Client希柿、BusinessDelegate诊沪、BusinessService养筒、LookUpService、JMSService 和 EJBService 來(lái)表示業(yè)務(wù)代表模式中的各種實(shí)體端姚。

BusinessDelegatePatternDemo 類使用 BusinessDelegate 和 Client 來(lái)演示業(yè)務(wù)代表模式的用法晕粪。


業(yè)務(wù)代表模式.png
  1. 創(chuàng)建 BusinessService 接口。
BusinessService.java
public interface BusinessService {
   public void doProcessing();
}
  1. 創(chuàng)建實(shí)體服務(wù)類渐裸。
    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");
   }
}
  1. 創(chuàng)建業(yè)務(wù)查詢服務(wù)巫湘。
    BusinessLookUp.java
public class BusinessLookUp {
   public BusinessService getBusinessService(String serviceType){
      if(serviceType.equalsIgnoreCase("EJB")){
         return new EJBService();
      }else {
         return new JMSService();
      }
   }
}
  1. 創(chuàng)建業(yè)務(wù)代表。
    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();     
   }
}
  1. 創(chuàng)建客戶端昏鹃。
    Client.java
public class Client {
   
   BusinessDelegate businessService;
 
   public Client(BusinessDelegate businessService){
      this.businessService  = businessService;
   }
 
   public void doTask(){      
      businessService.doTask();
   }
}
  1. 使用 BusinessDelegate 和 Client 類來(lái)演示業(yè)務(wù)代表模式尚氛。
    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();
   }
}
  1. 執(zhí)行程序,輸出結(jié)果:
Processing task by invoking EJB Service
Processing task by invoking JMS Service
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洞渤,一起剝皮案震驚了整個(gè)濱河市阅嘶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌载迄,老刑警劉巖讯柔,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異护昧,居然都是意外死亡魂迄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門惋耙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)捣炬,“玉大人,你說我怎么就攤上這事怠晴∫=穑” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蒜田,是天一觀的道長(zhǎng)稿械。 經(jīng)常有香客問我,道長(zhǎng)冲粤,這世上最難降的妖魔是什么美莫? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮梯捕,結(jié)果婚禮上厢呵,老公的妹妹穿的比我還像新娘。我一直安慰自己傀顾,他們只是感情好襟铭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般寒砖。 火紅的嫁衣襯著肌膚如雪赐劣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天哩都,我揣著相機(jī)與錄音魁兼,去河邊找鬼。 笑死漠嵌,一個(gè)胖子當(dāng)著我的面吹牛咐汞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播儒鹿,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼化撕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了约炎?” 一聲冷哼從身側(cè)響起侯谁,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎章钾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體热芹,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贱傀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伊脓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片府寒。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖报腔,靈堂內(nèi)的尸體忽然破棺而出株搔,到底是詐尸還是另有隱情,我是刑警寧澤纯蛾,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布纤房,位于F島的核電站,受9級(jí)特大地震影響翻诉,放射性物質(zhì)發(fā)生泄漏炮姨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一碰煌、第九天 我趴在偏房一處隱蔽的房頂上張望舒岸。 院中可真熱鬧,春花似錦芦圾、人聲如沸蛾派。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)洪乍。三九已至眯杏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間典尾,已是汗流浹背役拴。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钾埂,地道東北人河闰。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像褥紫,于是被迫代替她去往敵國(guó)和親姜性。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 簡(jiǎn)介 業(yè)務(wù)代表模式(Business Delegate Pattern)用于對(duì)表示層和業(yè)務(wù)層解耦髓考。它基本上是用來(lái)減...
    盜夢(mèng)者_(dá)56f2閱讀 623評(píng)論 0 1
  • 業(yè)務(wù)代表模式(Business Delegate Pattern)用于對(duì)表示層和業(yè)務(wù)層解耦部念。它基本上是用來(lái)減少通信...
    陳吉思_汗閱讀 234評(píng)論 0 0
  • 1.簡(jiǎn)介 業(yè)務(wù)代表模式用于對(duì)表示層和業(yè)務(wù)層解耦。它基本上是用來(lái)減少通信或?qū)Ρ硎緦哟a中的業(yè)務(wù)層代碼的遠(yuǎn)程查詢功能氨菇。...
    穹生變閱讀 101評(píng)論 0 0
  • 業(yè)務(wù)代表模式(Business Delegate Pattern)用于對(duì)表示層和業(yè)務(wù)層解耦儡炼。它基本上是用來(lái)減少通信...
    _凌浩雨閱讀 1,520評(píng)論 0 1
  • 前言: 因?yàn)楝F(xiàn)在設(shè)計(jì)模式在網(wǎng)絡(luò)上已經(jīng)泛濫,但是還是有好多程序員不能夠靈活的運(yùn)用設(shè)計(jì)模式,這個(gè)是對(duì)設(shè)計(jì)模式簡(jiǎn)單的介紹...
    蝸牛ICU閱讀 569評(píng)論 0 1