【設計模式遊戲完美開發】命令模式

命令模式:將請求命令封裝成對象,管理並執行

命令是指一種指示某人做某事的方式,在程序上也十分常見,如:鍵盤按下會發出某某指令。

封裝成對象是指 封裝成類,類要具有命令參數 以及 執行方法,意味着在命令創建之時就已經決定好要幹什麼,以及交給誰做。

命令參數就是要幹什麼時需要的材料,執行方法就是執行者和具體的執行邏輯。

將命令封裝成一個命令類之後,還需要一個命令管理器。

命令管理器簡單來說就是管理命令的,可增加命令、刪除命令、執行所有命令等等事情。

例如:Command命令類 ,CommandManager命令管理類

Command有一堆參數, 還有執行方法Execute()

CommandManager有一個List<Command> list;   還有AddCommand(Command)方法 以及 Execute()方法。

在外部如下使用:

Command command = new CommandA(param)

CommandManager cm = new CommandManager();

cm.AddCommand(command);

cm.Execute();

命令模式多用於項目需要將業務流程延後調用 或 需要管理其執行順序時,就可以用命令模式來加以管理。

例如:任務隊列,任務隊列就是一個個命令,放進去隊列裏面,按優先級排序,然後執行隊頭的任務;而當某個已存在隊列的任務不需要執行時,也可以撤銷任務(從隊列移除任務)。

多數情況都是可能會發生在一些比較特殊的情況,例如在Unity同一幀當中引發了10多個業務邏輯(事件),其中有幾個業務邏輯是必須要控制好執行順序的,不然表現效果會變差,那麼此時就可以使用命令模式來去控制這個順序問題了。

命令模式在C#中是十分好用的,因爲有委託這個強大的助手,能把需要調用的方法保存入委託中,從而延後執行業務邏輯。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章