命令模式
特點:針對3類物件(命令,命令的發起者,命令的實行者)。將每乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化,對請求進行管理(請求進行排隊或記錄請求日誌,以及支援可撤銷的操作)。
角色:command類:用來宣告執行操作的介面。
concretecommand類:將乙個接收者物件繫結與乙個動作,呼叫接收者相應的操作,以實現excute。
invoker類:要求該命令執行這個請求。
receiver類:知道如何實施與執行乙個與請求相關的操作,任何類都可能作為乙個接收者。
命令模式把請求乙個操作的物件與知道怎麼執行乙個操作的物件分隔開,即把「行為請求者」與「行為實現者」解耦。
class doctor
private:
doctor* m_doc;
};class commandtreathead:public command
void treat()
private:
doctor* m_doc;
};class headnurse
void addcommand(command* com)
void submitcase()
private:
list* m_list;
};
int main()
設計模式之命令設計模式
先來看一下命令模式的類圖 乍一看好像類很多,其實我們逐個分析他們。類圖中存在的類可以分為 invoker icommand conceretecommand receiver invoker類 上層直接調取invoker類 icommand 是對命令的抽象 conceretecommand 是命令的...
設計模式之命令模式
command pattern 將請求封裝成物件,這可以讓你使用不同的請求,佇列,或者是日誌請求來引數化其他物件,命令模式也可以支援撤銷操作。命令模式有兩種實現方式 1.在命令管理器中提供設定當前命令接受者的方法,當執行訊息或者是有訊息壓入的時候直接將命令傳送給當前設定的接受者。2.在命令管理器中建...
設計模式之命令模式
當我們有一台多功能的印表機,然後通過電腦直接進行任務,如圖 如果通過這樣的設計直接去呼叫多功能一體機的功能,就會存在此時此刻只能進行乙個任務,不允許有多個客戶端同時操作.那麼現在我們就需要考慮一種新的設計模式,叫做命令設計模式。命令設計模式 將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行...