設計模式 命令模式

2021-09-11 23:34:46 字數 1127 閱讀 7841

命令模式(command),將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化;對請求排隊或記錄請求日誌,以及支援可撤銷的操作。

角色:

背景:燒烤店中,顧客到了店裡,由服務員負責記錄顧客的點菜情況,再將顧客點的餐告訴廚師,廚師進行製作。這裡,顧客與廚師進行解耦,服務員相當於invoker類,是命令的傳達者;將每一桌顧客的請求封裝為乙個物件,類似於concretecommand類;廚師是命令的接受者,相當於receiver類。

class program

}public class barbecuer//烤羊肉串者

public void

backchickenwing()

}public abstract class command//抽象命令類

abstract public void

excutecommand()

;//執行命令

}class bakemuttoncommand : command//烤羊肉串命令

public override void

excutecommand()

}class bakechickenwingcommand : command//烤雞翅命令

public override void

excutecommand()

}public class waiter//服務員類

else

} public void

cancelorder

(command command)

//取消訂單

public void

notify()

}}

a、系統需要將請求呼叫者和請求接收者解耦,使得呼叫者和接收者不直接互動。

b、系統需要在不同的時間指定請求、將請求排隊和執行請求。

c、系統需要支援命令的撤銷(undo)操作和恢復(redo)操作。

d、系統需要將一組操作組合在一起,即支援巨集命令。

設計模式 命令設計模式

一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象command 命令的具體實現concretecommand 命令處理者抽象ireceiver 命令處理者的具體實現concretereceiver 命令的呼叫者invoker 客戶端client...

設計模式 命令模式

1 命令模式的角色組成 1 命令角色 command 生命執行操作的介面。介面或抽象類來實現。2 具體命令角色 concrete command 將乙個接收者物件繫結於乙個動作 呼叫接收者相應的操作,以實現命令角色宣告的執行操作的介面。3 客戶角色 client 建立乙個具體命令物件 並可以設定它的...

設計模式 命令模式

1 command.h ifndef command h define command h include include include using namespace std class chef 廚師,具體命令的執行者 class command 命令基類 class makemuttonco...