23種設計模式C 例項之命令模式

2021-07-16 12:02:16 字數 1080 閱讀 5476

#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 事務 等處理,這種無法抵禦變化的緊耦合是不合適的。在這種情況下,如何將 行為請求者 與 行為實現者 解耦?將一組行為抽象為物件,可以實現二者之間的松耦合。將乙個請...