日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

行为模式之命令

發布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 行为模式之命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

命令模式(Command)是一種對象行為模式,它是把一個請求封裝到一個對象中,使你可以用不同的請求對客戶進行參數化,對請求排隊或記錄請求日志,以及支持可撤銷的操作。命令模式是對命令的封裝,它把發出命令的責任與執行命令的責任分開,分別委派給不同的對象。如下圖是命令模式的結構圖:

這里的參與者都有:

Command
— 聲明執行操作的接口。
? ConcreteCommand?
— 將一個接收者對象綁定于一個動作。
— 調用接收者相應的操作,以實現 Execute
?Client
— 創建一個具體命令對象并設定它的接收者。
? Invoker
— 要求該命令執行這個請求。
?Receiver
— 知道如何實施與執行一個請求相關的操作。任何類都可能作為一個接收者。

由結構圖給出對應的類設計,代碼如下:

1 class Invoker{//要求命令執行請求 2 private Command command; 3 public Invoker(Command c){ 4 command=c; 5 } 6 public void action(){ 7 System.out.println("execute command action"); 8 command.execute(); 9 } 10 } 11 class Receiver{//實施執行與請求相關的操作 12 public void action(){ 13 System.out.println("this is Receiver's action,I will complete service"); 14 } 15 } 16 interface Command{ 17 void execute(); 18 } 19 class ConcreteCommand implements Command{//將一個接收者對象綁定一個動作,并調用接收者相應的操作,以實現execute 20 private Receiver rec; 21 public ConcreteCommand(Receiver rec){ 22 this.rec=rec; 23 } 24 public void execute(){ 25 System.out.println("Call Receiver's action"); 26 rec.action(); 27 } 28 } 29 public class Test{ 30 public static void main(String[] args) { 31 Receiver rec=new Receiver(); 32 Command com=new ConcreteCommand(rec); 33 Invoker inv=new Invoker(com); 34 inv.action(); 35 } 36 } View Code

這里,我們定義好命令的接收者對象Receiver,然后將其傳遞給命令對象com,最后由inv要求該命令執行這個請求。從這里可以看出,命令模式將發出命令與執行命令這兩個動作分開了,Command發出命令,但催動該命令的執行是Invoker完成的。所以,如果有排隊需求的話,可以在Invoker這里設置相關功能。

?

轉載于:https://www.cnblogs.com/codeMedita/p/7374251.html

總結

以上是生活随笔為你收集整理的行为模式之命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。