#include
#include
using
namespace std;
/* * 命令模式
* 乙個物件呼叫另乙個物件的一般過程:
* 1 建立目標物件的例項
* 2 設定呼叫引數
* 3 呼叫目標物件的方法
* 但在有時候我們需要對這種呼叫過程用類command加以封裝
* 降低兩個物件之間的耦合度
* */
class
doctor
void
diagnosenose()
};class
command
virtual
void
diagnose()
=0;}
;class
commandeye
:public command
virtual
void
diagnose()
public
: doctor* m_doc;};
class
commandnose
:public command
virtual
void
diagnose()
public
: doctor* m_doc;};
class
nurse
void
submitcmd()
private
: command* m_cmd;};
class
headnurse
void
submitcmd()
}void
setcmd
(command* cmd)
private
: list> m_list;};
intmain()
gof設計模式c++例項:結構模式(7種)
行為模式(11種)
23種設計模式之命令模式
定義 將乙個請求封裝成乙個物件,從而讓你使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能。型別 行為類模式 類圖 顧名思義,命令模式就是對命令的封裝,首先來看一下命令模式類圖中的基本結構 以上三個類的作用應該是比較好理解的,下面我們重點說一下invoker類和r...
23種設計模式之 命令模式
定義 將乙個請求封裝成乙個物件,從而讓你使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能。型別 行為類模式 類圖 命令模式的結構 顧名思義,命令模式就是對命令的封裝,首先來看一下命令模式類圖中的基本結構 以上三個類的作用應該是比較好理解的,下面我們重點說一下in...
23種設計模式 命令模式
在軟體構建過程中,行為請求者 與 行為實現者 通常呈現一種 緊耦合 但在某些場合 比如需要對行為進行 記錄 撤銷 重 undo redo 事務 等處理,這種無法抵禦變化的緊耦合是不合適的。在這種情況下,如何將 行為請求者 與 行為實現者 解耦?將一組行為抽象為物件,可以實現二者之間的松耦合。將乙個請...