設計模式 命令模式 指令模式

2022-03-06 06:53:46 字數 922 閱讀 7226

也是在看到阿里巴巴的面試題的時候總結的

您的star是我不斷前行的動力

七:命令模式(指令模式)

定義:將乙個請求封裝成乙個物件,從而讓你可以用不同的請求對客戶進行引數化,對請求排隊或者記錄請求日誌,以及支援可撤銷操作

應用例項:

可以參考hystrix的實現方式,就是採用命令模式實現

使用場景:

可以將接受者的操作封裝在命令類中,將命令類封裝在呼叫者中,直接使用呼叫者,即可完成對操作者的操作,

可以解決解耦和的作用

public class commandmode

}/**

* 呼叫者

*/class functionbutton

public command getcommand()

public void setcommand(command command)

public void click()

}/**

* 抽象命令類

*/abstract class command

class exitcommand extends command

@override

void execute()

}/**

* 接收者

*/class systemexitclass

}總結:

命令模式是一種行為型模式,首先要了解行為的執行模型:

呼叫者->命令類->接受者

也就是,呼叫者間接地通過命令類來操作接受者,

這裡可以通過拓展命令類的方式來完成對接受者的操作(例如上面的例項中,可以通過點選按鈕(呼叫者)實現其他對接受者的功能,例如退出系統(已實現),開啟文件,可以將開啟文件的行為封裝在接受者中,通過拓展命令類的方式(這裡可以實現乙個opendocucommand的命令類)來完成對接收者的操作。)

設計模式 命令設計模式

一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象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...