設計模式之命令模式

2022-01-29 11:46:49 字數 1048 閱讀 5279

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

命令模式有如下優點:1.它能較容易地設計乙個命令佇列;2.在需要的情況下,可以較容易地將命令記入日誌;3.允許接收請求的一方決定是否要否決請求;4.可以容易地實現請求的撤銷和重做;5.由於加進新的具體命令類不影響其他類,因此增加新的具體命令類很容易;6.把請求的乙個操作的物件與知道怎麼執行乙個操作的物件分割開來。

下面的例子是關於烤雞翅和烤羊肉串的例項。

**如下:

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

設計模式之命令模式

public

void

dochicken()

}public

abstract

class

command

public

abstract

void

excutecommand();

}public

class

sheepcommand : command

}public

class

chickencommand : command

}public

class

waiter

public

void

remove(command c)

public

void

doaction()}}

class

program}}

執行結果:

設計模式之命令設計模式

先來看一下命令模式的類圖 乍一看好像類很多,其實我們逐個分析他們。類圖中存在的類可以分為 invoker icommand conceretecommand receiver invoker類 上層直接調取invoker類 icommand 是對命令的抽象 conceretecommand 是命令的...

設計模式之命令模式

command pattern 將請求封裝成物件,這可以讓你使用不同的請求,佇列,或者是日誌請求來引數化其他物件,命令模式也可以支援撤銷操作。命令模式有兩種實現方式 1.在命令管理器中提供設定當前命令接受者的方法,當執行訊息或者是有訊息壓入的時候直接將命令傳送給當前設定的接受者。2.在命令管理器中建...

設計模式之命令模式

當我們有一台多功能的印表機,然後通過電腦直接進行任務,如圖 如果通過這樣的設計直接去呼叫多功能一體機的功能,就會存在此時此刻只能進行乙個任務,不允許有多個客戶端同時操作.那麼現在我們就需要考慮一種新的設計模式,叫做命令設計模式。命令設計模式 將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行...