




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第九章責(zé)任鏈模式1責(zé)任鏈模式使多個對象都有時機(jī)處理請求,從而防止請求的發(fā)送者和接收者之間的耦合關(guān)系。將這些對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有一個對象處理它為止。ChainofResponsibilityPatternAvoidcouplingthesenderofarequesttoitsreceiverbygivingmorethanoneobjectachancetohandletherequest.Chainthereceivingobjectsandpasstherequestalongthechainuntilanobjecthandlesit.1精選ppt2精選pptChainofResponsibility模式在軍隊中也有應(yīng)用的例子。某個下級軍官要求得到上級軍官的許可,這個請求將由其直接上級軍官再報給上級軍官的上級軍官,直到某個上級軍官有權(quán)利做決定為止。如果一名水兵請求進(jìn)入某個海軍基地,他說執(zhí)行的請求過程就是ChainofResponsibility的實例。3精選ppt一、概述4
責(zé)任鏈模式是使用多個對象處理用戶請求的成熟模式,責(zé)任鏈模式的關(guān)鍵是將用戶的請求分派給許多對象,這些對象被組織成一個責(zé)任鏈,即每個對象含有后繼對象的引用,并要求責(zé)任鏈上的每個對象,如果能處理用戶的請求,就做出處理,不再將用戶的請求傳遞給責(zé)任鏈上的下一個對象;如果不能處理用戶的請求,就必須將用戶的請求傳遞給責(zé)任鏈上的下一個對象。4精選ppt二、責(zé)任鏈模式的結(jié)構(gòu)與使用
5模式的結(jié)構(gòu)中包括兩種角色:處理者〔Handler〕具體處理者〔ConcreteHandler〕5精選ppt6模式的UML類圖
6精選pptaClientaHandleraConcreteHandlersuccessoraConcreteHandlersuccessor7精選ppt模式的結(jié)構(gòu)的描述與使用用戶提交一個人的身份證號碼,想知道該人是否在北京、上?;蛱旖蚓幼 ?精選ppt91.處理者〔Handler〕:Handler.javapublicinterfaceHandler{publicabstractvoidhandleRequest(Stringnumber);publicabstractvoidsetNextHandler(Handlerhandler);}9精選ppt102.具體處理者〔ConcreteHandler〕_1:Beijing.javapublicclassBeijingimplementsHandler{privateHandlerhandler;privateArrayList<String>numberList;Beijing(){numberList=newArrayList<String>();numberList.add("11129812340930034");numberList.add("10120810340930632");numberList.add("22029812340930034");numberList.add("32620810340930632");}publicvoidhandleRequest(Stringnumber){if(numberList.contains(number))System.out.println("該人在北京居住");else{System.out.println("該人不在北京居住");if(handler!=null)handler.handleRequest(number);}}publicvoidsetNextHandler(Handlerhandler){this.handler=handler;}}10精選ppt112.具體處理者〔ConcreteHandler〕_2:Shanghai.javapublicclassShanghaiimplementsHandler{privateHandlerhandler;privateArrayList<String>numberList;Shanghai(){numberList=newArrayList<String>();numberList.add("34529812340930034");numberList.add("98720810340430632");numberList.add("36529812340930034");numberList.add("77720810340930632");}publicvoidhandleRequest(Stringnumber){if(numberList.contains(number))System.out.println("該人在上海居住");else{System.out.println("該人不在上海居住");if(handler!=null)handler.handleRequest(number);}}publicvoidsetNextHandler(Handlerhandler){this.handler=handler;}}11精選ppt122.具體處理者〔ConcreteHandler〕_3:Tianjin.javapublicclassTianjinimplementsHandler{privateHandlerhandler;privateArrayList<String>numberList;Tianjin(){numberList=newArrayList<String>();numberList.add("10029812340930034");numberList.add("20020810340430632");numberList.add("30029812340930034");numberList.add("50020810340930632");}publicvoidhandleRequest(Stringnumber){if(numberList.contains(number))System.out.println("該人在天津居住");else{System.out.println("該人不在天津居住");if(handler!=null)handler.handleRequest(number);}}publicvoidsetNextHandler(Handlerhandler){this.handler=handler;}}12精選ppt133.應(yīng)用Application.javapublicclassApplication{privateHandlerbeijing,shanghai,tianjin;publicvoidcreateChain(){beijing=newBeijing();shanghai=newShanghai();tianjin=newTianjin();beijing.setNextHandler(shanghai);shanghai.setNextHandler(tianjin);}publicvoidreponseClient(Stringnumber){beijing.handleRequest(number);}publicstaticvoidmain(Stringargs[]){Applicationapplication=newApplication();application.createChain();application.reponseClient("77720810340930632");;}}13精選ppt三、責(zé)任鏈模式的優(yōu)點14責(zé)任鏈中的對象只和自己的后繼是低耦合關(guān)系,和其他對象毫無關(guān)聯(lián),這使得編寫處理者對象以及創(chuàng)立責(zé)任鏈變得非常容易。當(dāng)在處理者中分配職責(zé)時,責(zé)任鏈給應(yīng)用程序更多的靈活性。應(yīng)用程序可以動態(tài)地增加、刪除處理者或重新指派處理者的職責(zé)。應(yīng)用程序可以動態(tài)地改變處理者之間的先后順序。使用責(zé)任鏈的用戶不必知道處理者的信息,用戶不會知道到底是哪個對象處理了它的請求。14精選ppt四、應(yīng)用舉例//Handler.javapublicinterfaceHandler{publicabstractvoidcompuerMultiply(Stringnumber);publicabstractvoidsetNextHandler(Handlerhandler);}15精選pptpublicclassUseIntimplementsHandler{privateHandlerhandler;privateintresult=1;publicvoidcompuerMultiply(Stringnumber){try{intn=Integer.parseInt(number);inti=1;while(i<=n){result=result*i;if(result<=0){System.out.println(“超出我的能力范圍,我計算不了");handlerpuerMultiply(number);return;}i++;}System.out.println(number+“的階乘:"+result);}catch(NumberFormatExceptionexp){System.out.println(exp.toString());}}publicvoidsetNextHandler(Handlerhandler){this.handler=handler;}}16精選pptpublicclassUseLongimplementsHandler{privateHandlerhandler;privatelongresult=1;publicvoidcompuerMultiply(Stringnumber){try{longn=Long.parseLong(number);longi=1;while(i<=n){result=result*i;if(result<=0){System.out.println(“超出我的能力范圍,我計算不了");handlerpuerMultiply(number);return;}i++;}System.out.println(number+“的階乘:"+result);}catch(NumberFormatExceptionexp){System.out.println(exp.toString());}}publicvoidsetNextHandler(Handlerhandler){this.handler=handler;}}17精選pptimportjava.math.BigInteger;publicclassUseBigIntegerimplementsHandler{privateHandlerhandler;privateBigIntegerresult=newBigInteger("1");publicvoidcompuerMultiply(Stringnumber){try{BigIntegern=newBigInteger(number);BigIntegerONE=newBigInteger("1");BigIntegeri=ONE;while(ipareTo(n)<=0){result=result.multiply(i);i=i.add(ONE);}System.out.println(number+"??????:"+result);}catch(NumberFormatEx
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度互聯(lián)網(wǎng)企業(yè)股權(quán)收購與整合協(xié)議
- 二零二五年度農(nóng)業(yè)科技企業(yè)員工借調(diào)與種植技術(shù)合同
- 二零二五年度智能硬件委托擔(dān)保服務(wù)協(xié)議
- 2025年度高空作業(yè)安全協(xié)議承諾書與高空作業(yè)設(shè)備檢測維修合同
- 2025年度智慧城市保安員聘用合同范本
- 2025年度高校學(xué)生社會實踐基地實習(xí)服務(wù)合同
- 2025年普洱貨運(yùn)從業(yè)資格證考些什么內(nèi)容
- 2025年福建貨運(yùn)從業(yè)資格證考試試題
- 2025年沈陽貨運(yùn)從業(yè)資格證考試題答案大全及解析
- 2025年黃山貨運(yùn)從業(yè)資格考題
- DB63-T 2033-2022 青海省農(nóng)房建筑節(jié)能建設(shè)標(biāo)準(zhǔn)
- CAD術(shù)語對照表
- 《橋梁工程計算書》word版
- 學(xué)術(shù)論文的寫作與規(guī)范課件
- 香港牛津新魔法Newmagic3AUnit4Mycalendar單元檢測試卷
- 中考《紅星照耀中國》各篇章練習(xí)題及答案(1-12)
- 中華人民共和國特種設(shè)備安全法(節(jié)選)
- 長RP心動過速的心電圖鑒別診斷
- 施工現(xiàn)場安全隱患檢查(附標(biāo)準(zhǔn)規(guī)范)
- 吞咽障礙及吞咽功能的評定
- 一年級數(shù)學(xué)三分鐘演講.ppt
評論
0/150
提交評論