天天看點

【設計模式】指令模式

指令模式:将請求封裝在對象中,客戶不直接調用某個對象的方法,而是使用指令,将指令傳遞給擁有方法的對象進而讓某一方法被調用。UML圖例如以下:

【設計模式】指令模式

以下是用C++描寫的指令模式的一個簡單樣例:

執行結果:

【設計模式】指令模式

指令被封裝成類,然後由某個Invoker(這裡是switch開關類)儲存、删除、發出指令。指令行的長處在于:把請求一個操作的對象(Invoker)與知道怎麼運作一個操作的對象(Receiver)分隔開了。我們能夠在實際操作開始之前或之後進行某些靈活的操作,比方:加入、删除、反複、記錄日志等。

參考:

維基百科

《大話設計模式》第23章