




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、Design Patterns,命令模式,劉 偉 (Sunny) weiliu_,大綱,命令模式概述 命令模式的結(jié)構(gòu)與實現(xiàn) 命令模式的應用實例 實現(xiàn)命令隊列 記錄請求日志 實現(xiàn)撤銷操作 宏命令 命令模式的優(yōu)缺點與適用環(huán)境,很多軟件都能夠自定義快捷鍵,命令模式概述,開關與電燈、排氣扇示意圖,命令模式概述,分析 現(xiàn)實生活 相同的開關可以通過不同的電線來控制不同的電器 開關 請求發(fā)送者 電燈 請求的最終接收者和處理者 開關和電燈之間并不存在直接耦合關系,它們通過電線連接在一起,使用不同的電線可以連接不同的請求接收者,命令模式概述,分析 軟件開發(fā) 按鈕 請求發(fā)送者 事件處理類 請求的最終接收者和處理者
2、 發(fā)送者與接收者之間引入了新的命令對象(類似電線),將發(fā)送者的請求封裝在命令對象中,再通過命令對象來調(diào)用接收者的方法 相同的按鈕可以對應不同的事件處理類,命令模式概述,動機 將請求發(fā)送者和接收者完全解耦 發(fā)送者與接收者之間沒有直接引用關系 發(fā)送請求的對象只需要知道如何發(fā)送請求,而不必知道如何完成請求,命令模式,命令模式概述,命令模式的定義 對象行為型模式,命令模式概述,命令模式的定義 別名為動作(Action)模式或事務(Transaction)模式 “用不同的請求對客戶進行參數(shù)化” “對請求排隊” “記錄請求日志” “支持可撤銷操作”,命令模式的結(jié)構(gòu)與實現(xiàn),命令模式的結(jié)構(gòu),命令模式的結(jié)構(gòu)與實
3、現(xiàn),命令模式的結(jié)構(gòu) 命令模式包含以下4個角色: Command(抽象命令類) ConcreteCommand(具體命令類) Invoker(調(diào)用者) Receiver(接收者),命令模式的結(jié)構(gòu)與實現(xiàn),命令模式的實現(xiàn) 命令模式的本質(zhì)是對請求進行封裝 一個請求對應于一個命令,將發(fā)出命令的責任和執(zhí)行命令的責任分開 命令模式允許請求的一方和接收的一方獨立開來,使得請求的一方不必知道接收請求的一方的接口,更不必知道請求如何被接收、操作是否被執(zhí)行、何時被執(zhí)行,以及是怎么被執(zhí)行的,命令模式的結(jié)構(gòu)與實現(xiàn),命令模式的實現(xiàn) 典型的抽象命令類代碼:,命令模式的結(jié)構(gòu)與實現(xiàn),命令模式的實現(xiàn) 典型的調(diào)用者(請求發(fā)送者)類
4、代碼:,命令模式的結(jié)構(gòu)與實現(xiàn),命令模式的實現(xiàn) 典型的具體命令類代碼:,命令模式的結(jié)構(gòu)與實現(xiàn),命令模式的實現(xiàn) 典型的請求接收者類代碼:,命令模式的應用實例,實例說明,命令模式的應用實例,實例類圖,功能鍵設置結(jié)構(gòu)圖,命令模式的應用實例,實例代碼 (1) FunctionButton:功能鍵類,充當請求調(diào)用者(請求發(fā)送者) (2) Command:抽象命令類 (3) ExitCommand:退出命令類,充當具體命令類 (4) HelpCommand:幫助命令類,充當具體命令類 (5) SystemExitClass:退出系統(tǒng)模擬實現(xiàn)類,充當請求接收者 (6) DisplayHelpClass:顯示幫
5、助文檔模擬實現(xiàn)類,充當請求接收者 (7) 配置文件App.config (8) Program:客戶端測試類,演示,參考代碼 (DesignPatternCommandSample),命令模式的應用實例,結(jié)果及分析 如果需要更換具體命令類,無須修改源代碼,只需修改配置文件,完全符合開閉原則 每一個具體命令類對應一個請求的處理者(接收者),通過向請求發(fā)送者注入不同的具體命令對象可以使相同的發(fā)送者對應不同的接收者,從而實現(xiàn)“將一個請求封裝為一個對象,用不同的請求對客戶進行參數(shù)化”,客戶端只需要將具體命令對象作為參數(shù)注入請求發(fā)送者,無須直接操作請求的接收者,實現(xiàn)命令隊列,動機 當一個請求發(fā)送者發(fā)送一
6、個請求時,有不止一個請求接收者產(chǎn)生響應,這些請求接收者將逐個執(zhí)行業(yè)務方法,完成對請求的處理 增加一個CommandQueue類,由該類負責存儲多個命令對象,而不同的命令對象可以對應不同的請求接收者 批處理,實現(xiàn)命令隊列,實現(xiàn),記錄請求日志,動機 將請求的歷史記錄保存下來,通常以日志文件(Log File)的形式永久存儲在計算機中 為系統(tǒng)提供一種恢復機制 可以用于實現(xiàn)批處理 防止因為斷電或者系統(tǒng)重啟等原因造成請求丟失,而且可以避免重新發(fā)送全部請求時造成某些命令的重復執(zhí)行,記錄請求日志,實現(xiàn) 將發(fā)送請求的命令對象通過序列化寫到日志文件中 命令類必須使用屬性Serializable標記為可序列化,命
7、令對象,日志文件,序列化,實現(xiàn)撤銷操作,實例 可以通過對命令類進行修改使得系統(tǒng)支持撤銷(Undo)操作和恢復(Redo)操作,實現(xiàn)撤銷操作,結(jié)構(gòu),簡易計算器結(jié)構(gòu)圖,實現(xiàn)撤銷操作,實現(xiàn) 加法類:Adder(請求接收者) 抽象命令類:AbstractCommand 加法命令類:AddCommand(具體命令類) 計算器界面類:CalculatorForm(請求發(fā)送者) 客戶端測試類:Program,演示,參考代碼 (DesignPatternCommandUndoSample),宏命令,動機 宏命令(Macro Command)又稱為組合命令(Composite Command),它是組合模式和命
8、令模式聯(lián)用的產(chǎn)物 宏命令是一個具體命令類,它擁有一個集合,在該集合中包含了對其他命令對象的引用 當調(diào)用宏命令的Execute()方法時,將遞歸調(diào)用它所包含的每個成員命令的Execute()方法。一個宏命令的成員可以是簡單命令,還可以繼續(xù)是宏命令 執(zhí)行一個宏命令將觸發(fā)多個具體命令的執(zhí)行,從而實現(xiàn)對命令的批處理,宏命令,結(jié)構(gòu),命令模式的優(yōu)缺點與適用環(huán)境,模式優(yōu)點 降低了系統(tǒng)的耦合度 新的命令可以很容易地加入到系統(tǒng)中,符合開閉原則 可以比較容易地設計一個命令隊列或宏命令(組合命令) 為請求的撤銷(Undo)和恢復(Redo)操作提供了一種設計和實現(xiàn)方案,命令模式的優(yōu)缺點與適用環(huán)境,模式缺點 使用命令模式可能會導致某些系統(tǒng)有過多的具體命令類(針對每一個對請求接收者的調(diào)用操作都需要設計一個具體命令類),命令模式的優(yōu)缺點與適用環(huán)境,模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)+在儀器儀表行業(yè)的應用案例考核試卷
- 廢棄物肥料化處理經(jīng)濟效益分析考核試卷
- 保健品市場社會責任信息披露規(guī)范考核試卷
- 財務部門個人2024年終工作總結(jié)(30篇)
- 印刷品設計的創(chuàng)意與創(chuàng)新考核試卷
- 財務會計求職信11篇 關于財務會計崗位的求職信
- 2025年中國PU高固透明底漆數(shù)據(jù)監(jiān)測研究報告
- 2025年中國LCD模塊數(shù)據(jù)監(jiān)測研究報告
- 2025年中國EAS服務器系統(tǒng)數(shù)據(jù)監(jiān)測報告
- 2025年中國90°內(nèi)絲卡套彎頭數(shù)據(jù)監(jiān)測研究報告
- 2024年江西省公安廳招聘警務輔助人員考試真題
- 2025年湖北省中考英語真題含答案
- 砂石銷售提成管理制度
- 2025年湖南省中考生物試卷及答案
- 2025至2030中國地效飛行器行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025年四川省眉山市中考化學試卷及答案
- 2025年重慶市中考語文試卷(含解析)
- 2025年湖北省普通高中學業(yè)水平合格性考試模擬(三)歷史試題(含答案)
- 廣東省中山市2023-2024學年八年級下學期語文期末試卷(含答案)
- 2025至2030中國處方呼吸藥物行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025年河南高考真題化學試題含答案
評論
0/150
提交評論