命令模式:將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化,對請求排隊或記錄請求日誌,以及支援可撤銷的操作。
類圖:
receiver是具體的命令的接受者和執行者
command 命令的介面
concretecommand具體的命令,繼承command,實現介面方法,並含有乙個receiver來實現具體的命令;
invoker:要求該命令執行這個請求;呼叫者,將命令向後傳遞;
優點:
比較容易的設計乙個命令佇列
在需要的情況下,可以較容易地將命令記入日誌;
允許接受請求的一方決定是否要否決請求。
可以容易的實現對請求的撤銷和重做
加進新的具體的命令不影響其他類
使請求者與實現者解耦
**:
command 介面:
concretecommand類:public
abstract
class command
public
abstract
void
execute();
}
receiver類:public
class
concretecommand
extends
command
@override
public
void
execute()
}
invoker類:public
class receiver
}
client類:public
class invoker
public
void
executorcomman()
}
import org.junit.test;
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...