設(shè)計(jì)模式—之命令_第1頁(yè)
設(shè)計(jì)模式—之命令_第2頁(yè)
設(shè)計(jì)模式—之命令_第3頁(yè)
設(shè)計(jì)模式—之命令_第4頁(yè)
設(shè)計(jì)模式—之命令_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

設(shè)計(jì)模式 之 命令模式 行為型 一個(gè)具體的例子 燒烤攤 vs 燒烤店燒烤攤的老板與顧客之間聯(lián)系比較緊密 燒烤攤的類(lèi)圖 一個(gè)具體的例子 燒烤攤的實(shí)現(xiàn)程序 燒烤者Publicclassbarbecuerman publicvoidbakemutton 烤羊肉 console write 烤羊肉串 publicvoidbakechichenwing 烤雞翅 console write 烤雞翅 一個(gè)具體的例子 客戶(hù)端調(diào)用 voidmain boy newbarbecuerman boy bakemutton boy bakemutton boy bakechikenwing boy bakechikenwing 存在的問(wèn)題 程序耦合比較緊 當(dāng)用戶(hù)多了以后就變得比較混亂了 行為請(qǐng)求者和行為實(shí)現(xiàn)者的緊耦合 一個(gè)具體的例子 改進(jìn) 引入服務(wù)員類(lèi) 依賴(lài)關(guān)系 一個(gè)具體的例子 抽象命令類(lèi) 只需確定烤肉者publicclasscommand protectedbarbecuermanreceiver publiccommand barbecuermanreceiver this receiver receiver 執(zhí)行命令publicvoidexcutecommand 確定燒烤者是誰(shuí) 一個(gè)具體的例子 具體命令類(lèi) 烤羊肉串命令 執(zhí)行具體的行為classbakemuttoncommand command publicbakemuttoncommand barbecuermanreceiver command receiver publicvoidexcutecommand receiver bakemutton 一個(gè)具體的例子 烤雞翅命令classbakemuttoncommand command publicbakemuttoncommand barbecuermanreceiver command receiver publicvoidexcutecommand receiver bakechikenwing 一個(gè)具體的例子 服務(wù)員類(lèi)Publicclasswaiter privatecommandacommand 設(shè)置訂單publicvoidsetorder commandacommand mand acommand 通知執(zhí)行publicvoidnotify command excutecommand 一個(gè)具體的例子 客戶(hù)端 voidmain 準(zhǔn)備工作Barbecuerboy newbarbecuerman Commandbakemuttoncommand1 newbakemuttoncommand boy Commandbakechickenwingcommand1 newbakechickenwingcommand boy waitergirl newwaiter 燒烤店事先準(zhǔn)備好了廚師和服務(wù)員 等著開(kāi)業(yè) 一個(gè)具體的例子 開(kāi)門(mén)營(yíng)業(yè)girl setorder bakemuttoncommand1 girl notify girl setorder bakechichenwingcommand1 girl notify 一個(gè)具體的例子 存在的問(wèn)題 1 不是用戶(hù)點(diǎn)一個(gè)菜 服務(wù)員就跑去讓廚師作 2 萬(wàn)一雞翅或羊肉沒(méi)有了怎么辦 3 服務(wù)員如何記錄客戶(hù)消費(fèi)的情況 4 客戶(hù)萬(wàn)一要取消消費(fèi)怎么辦 修改服務(wù)員類(lèi) 服務(wù)員類(lèi)PublicclassWaiter privateIListorders newList 設(shè)置訂單If command Tostring 命令模式 BakeChickenWingCommand console Writeline 服務(wù)員 雞翅沒(méi)有了 請(qǐng)點(diǎn)別的 else orders Add command Console WriteLine 增加訂單 command Tostring 時(shí)間 DateTime Now Tostring 增加具體存放命令的容器 取消訂單PublicvoidCancelOrder Commandcommand order Remove command Cansole WriteLine 取消訂單 command Tostring 時(shí)間 DateTime Now Tostring 通知執(zhí)行訂單Publicvoidnotify foreach Commandcmdinorder cmd ExcuteCommand 客服端實(shí)現(xiàn)Staticvoid string args 開(kāi)店前的準(zhǔn)備Barbecuerboy newbarbecuerman Commandbakemuttoncommand1 newbakemuttoncommand boy Commandbakechickenwingcommand1 newbakechickenwingcommand boy waitergirl newwaiter 開(kāi)門(mén)營(yíng)業(yè)girl setorder bakemuttoncommand1 girl setorder bakechichenwingcommand1 點(diǎn)菜完畢 通知廚房girl Notify 命令模式 將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象 從而使你可用不同的請(qǐng)求對(duì)客戶(hù)進(jìn)行參數(shù)化 對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求日志 以及支持可撤銷(xiāo)的操作 命令模式 barbecuerman command waiter bak

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論