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

1.簡(jiǎn)介

業(yè)務(wù)代表模式用于對(duì)表示層和業(yè)務(wù)層解耦。它基本上是用來減少通信或?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)邏輯硫麻。

2.實(shí)現(xiàn)

我們將創(chuàng)建 Client爸邢、BusinessDelegate、BusinessService拿愧、LookUpService杠河、JMSService 和 EJBService 來表示業(yè)務(wù)代表模式中的各種實(shí)體。
BusinessDelegatePatternDemo赶掖,我們的演示類使用 BusinessDelegate 和 Client 來演示業(yè)務(wù)代表模式的用法感猛。


image.png

1.創(chuàng)建 BusinessService 接口

public interface BusinessService {
   public void doProcessing();
}

2.創(chuàng)建實(shí)體服務(wù)類

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.創(chuàng)建業(yè)務(wù)查詢服務(wù)

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

4.創(chuàng)建業(yè)務(wù)代表

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.創(chuàng)建客戶端

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

6.使用 BusinessDelegate 和 Client 類來演示業(yè)務(wù)代表模式

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.執(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)店門毕箍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人道盏,你說我怎么就攤上這事而柑。” “怎么了荷逞?”我有些...
    開封第一講書人閱讀 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)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼闷旧!你這毒婦竟也來了长豁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(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
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幕垦。三九已至丢氢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間先改,已是汗流浹背疚察。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仇奶,地道東北人貌嫡。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像该溯,于是被迫代替她去往敵國和親岛抄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,100評(píng)論 1 32
  • 這部分主要是開源Java EE框架方面的內(nèi)容狈茉,包括Hibernate夫椭、MyBatis、Spring论皆、Spring ...
    雜貨鋪老板閱讀 1,374評(píng)論 0 2
  • 早上本想多賴一會(huì)兒益楼,這月的兩次遲到機(jī)會(huì)還沒有用,但最后還是掙扎著起來了点晴。 去往公司的路上碰見了兩個(gè)同事,其他照常悯周。...
    人群中看不到我閱讀 128評(píng)論 0 0
  • 你說喜歡我為你寫詩 這樣的我你說好有吸引力 某個(gè)一瞬間你總是深情的看著我 而我裝作不知道 在遇到你之前 我遭遇的都...
    苦咖啡小奶油閱讀 133評(píng)論 0 1
  • 一天的中午粒督,到了吃飯時(shí)間,家人們各自尋找著自己的小板凳禽翼,不約而同的圍坐在飯桌前屠橄,等候孩子奶奶把熱乎的飯菜端上桌。奶...
    鶯歌學(xué)飛閱讀 161評(píng)論 0 0