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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論