設計模式筆記 – 命令模式

分類

  • 行為型

模式的目的(定義)

  • 為了更好管理對目標對象的請求,我們將「請求」本身封裝成一個又一個對象(命令對象),並經由一個調用者去實行這些請求
    • 比如可以在調用者裡管理一個請求隊列,確保請求的執行順序,也可以支持命令撤銷等功能

使用場景例子

  • 比如現在有一個回合制遊戲,玩家有一些手牌,每打出一張手牌,場上的角色就會發出一個招式並播放一些動畫等等
    • 但玩家是不會乖乖等到所有東西播完才點下一張手牌的,玩家往往是點完一大輪手牌,操作一番後再等待場上角色自己完成餘下要完成的行動
  • 這時候就可以應用命令模式,把玩家每回合所點撃的操作,封裝為一個個命令對象,構成一個命令隊列,讓遊戲流程根據自己的節奏按順序執行每個命令,而不需要在意玩家的操作有多頻繁急速

類圖

參考書目

  • 《Head First Design Patterns》Eric Freeman, Elisabeth Robson, Kathy Sierra, Bert Bates