命令設計模式

2021-08-19 20:39:12 字數 1227 閱讀 1295

介紹:

將乙個請求封裝為乙個物件,從而使我們可用不同的請求對客戶進行引數化,對請求排隊或者記錄請求日誌,以及支援可撤銷的操作,也稱之為:動作action模式,失誤transaction模式。

使用場景:

1.struts2中,action的整個呼叫過程中就有命令模式

2.資料庫事務機制的底層實現

3.命令的撤銷與恢復

結構:command抽象命令類

concretecommand具體命令類、

invoker呼叫者

請求的傳送者,它通過命令物件來執行請求。乙個呼叫者並不需要在設計時確定其接收者,因此它只與物件命令類之前存在關聯。在程式執行時,將呼叫命令物件的execute(),間接呼叫接收者的相關操作。

receiver接收者

接收者執行與請求相關的操作,具體實現對請求的業務處理。未抽象前,實際執行操作內容的物件。

clinet客戶類

在客戶類中需要建立呼叫者物件、具體命令類物件,在建立具體命令物件時指定對應的接收者。傳送者和接收者之間沒有直接關係,都通過命令物件間接呼叫。

類圖:

實現:

package com.gcxz***l.command;

/** * 真正的命令的執行者

* @author administrator

* */

public class receiver

}

package com.gcxz***l.command;

public inte***ce command

class concretecommand implements command

@override

public void execute()

}

package com.gcxz***l.command;

//呼叫者/發起者

public class invoke

//業務方法 ,用於呼叫命令類的方法

public void call()

}

package com.gcxz***l.command;

public class client

}

設計模式 命令設計模式

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