設計模式之命令模式

2021-10-01 03:14:25 字數 919 閱讀 8979

下面通過乙個簡單的示例說明命令模式的使用:

【a】uml類圖:

可見,上面的類圖很容易可以看出各個角色分別是什麼,如soldierreceiver是命令的接收者,generalinvoker是命令呼叫者等等。詳細**如下:

【b】抽象命令類:宣告了執行命令的抽象方法

public inte***ce command
【c】命令接收者:真正執行命令的物件

public class soldierreceiver 

}

【d】抽象命令的子類:聚合了命令接收者的乙個引用

public class concreatecommand implements command 

@override

public void execute()

}

【e】命令呼叫者

public class generalinvoker 

public void launchattack()

}

【f】 客戶端

public class client 

}

可見,客戶端直接使用命令呼叫者就可以完成相應的功能,解耦了請求傳送者和請求處理者。 

【g】執行結果

設計模式之命令設計模式

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

設計模式之命令模式

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

設計模式之命令模式

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