1、定義:
將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化;對請求排隊或記錄請求日誌,以及支援可撤消的操作。[gof 《設計模式》]
2、角色
command——用來執行操作的介面。
createcommand——將乙個接收者物件繫結乙個動作,並實現執行命令操作。
invoker——要求該命令執行。
receiver——知道如何實施與執行乙個與請求相關的操作,任何類都可作為乙個接收者。
3、模型
command
abstract class command abstract public void execute(); }
createcommand
class createcommand : command public override void execute() }
receiver
class receiver }
invoker
class invoker public void executecommand() }
呼叫
static void main(string args)
結果:
命令模式模型**:
命令模式,很多個receiver,並與之對應command也有很多個,invoker則負責將receiver和command關聯,並執行。
應用模型:
abstract class command1 abstract public void execute(); } abstract class command2 abstract public void execute(); } class createcommand1 : command1 public override void execute() } class createcommand2 : command2 public override void execute() } class invoker public void executecommand1() public void setcommand2(command2 command) public void executecommand2() } class receiver1 } class receiver2 }
呼叫
static void main(string args)
結果:
應用**:
讀書筆記18 命令模式
1 定義 將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化 對請求排隊或記錄請求日誌,以及支援可撤消的操作。gof 設計模式 2 角色 command 用來執行操作的介面。createcommand 將乙個接收者物件繫結乙個動作,並實現執行命令操作。invoker 要求該命令執行。r...
遊戲設計模式讀書筆記 命令模式
使你可用不同的請求對客戶進行引數化 對請求排隊或者記錄請求日誌 支援可撤銷的操作。如果有undo的需求時採用模擬較好,反之可以考慮delegate。如果你的方法中使用了很多的共享的資料,你考慮使用享元模式時應該使用類,如果你的execute方法還呼叫了父類的方法,需要使用沙盒模式時應該考慮使用類。可...
《http權威指南》讀書筆記18
最近對http很感興趣,於是開始看 http權威指南 別人都說這本書有點老了,而且內容太多。我個人覺得這本書寫的太好了,非常長知識,讓你知道關於http的很多概念,不僅告訴你怎麼做,還告訴你為什麼這麼做。於是我把學到的知識點記錄下來,供以後開發時參考,相信對其他人也有用。1.http應用程式總是要做...