命令模式:將乙個請求封裝成乙個物件,使得你用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能
命令模式類圖
命令模式五個角色
●客戶端(client)角色:建立乙個具體命令(concretecommand)物件並確定其接收者。
●命令(command)角色:宣告了乙個給所有具體命令類的抽象介面。
●具體命令(concretecommand)角色:定義乙個接收者和行為之間的弱耦合;實現execute()方法,負責呼叫接收者的相應操作。execute()方法通常叫做執行方法。
●請求者(invoker)角色:負責呼叫命令物件執行請求,相關的方法叫做行動方法。
●接收者(receiver)角色:負責具體實施和執行乙個請求。任何乙個類都可以成為接收者,實施和執行請求的方法叫做行動方法。
下面實現遙控器控制電燈的開關
//命令角色
package com.wdf.command;
/* * 命令介面
* */
public inte***ce command
//接收者
package com.wdf.command;
public class light
public void on()
public void off()
}
具體命令角色
package com.wdf.command;
public class lightoncommand implements command
@override
public void execute()
}
//請求者角色
package com.wdf.command;
public class ******remotecontrol
public void setcommand(command command)
public void buttonwaspressed()
}
客戶端角色
package com.wdf.command;
public class test
}
設計模式之命令設計模式
先來看一下命令模式的類圖 乍一看好像類很多,其實我們逐個分析他們。類圖中存在的類可以分為 invoker icommand conceretecommand receiver invoker類 上層直接調取invoker類 icommand 是對命令的抽象 conceretecommand 是命令的...
設計模式之命令模式
command pattern 將請求封裝成物件,這可以讓你使用不同的請求,佇列,或者是日誌請求來引數化其他物件,命令模式也可以支援撤銷操作。命令模式有兩種實現方式 1.在命令管理器中提供設定當前命令接受者的方法,當執行訊息或者是有訊息壓入的時候直接將命令傳送給當前設定的接受者。2.在命令管理器中建...
設計模式之命令模式
當我們有一台多功能的印表機,然後通過電腦直接進行任務,如圖 如果通過這樣的設計直接去呼叫多功能一體機的功能,就會存在此時此刻只能進行乙個任務,不允許有多個客戶端同時操作.那麼現在我們就需要考慮一種新的設計模式,叫做命令設計模式。命令設計模式 將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行...