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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

command pattern

發布時間:2025/4/5 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 command pattern 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.定義(http://en.wikipedia.org/wiki/Command_pattern#Java)

In?object-oriented programming, the?command pattern?is a?behavioral?design pattern?in which an object is used to represent and?encapsulate?all the information needed to call a method at a later time. This information includes the method name, the object that owns the method and values for the method parameters.

Four terms always associated with the command pattern are?command,?receiver,?invoker?and?client. A?command?object has a?receiver?object and invokes a method of the receiver in a way that is specific to that receiver's class. The receiver then does the work. A command object is separately passed to an?invoker?object, which invokes the command, and optionally does bookkeeping about the command execution. Any command object can be passed to the same invoker object. Both an invoker object and several command objects are held by a?client?object. The client contains the decision making about which commands to execute at which points. To execute a command, it passes the command object to the invoker object. See example code below.

Using command objects makes it easier to construct general components that need to delegate, sequence or execute method calls at a time of their choosing without the need to know the class of the method or the method parameters. Using an invoker object allows bookkeeping about command executions to be conveniently performed, as well as implementing different modes for commands, which are managed by the invoker object, without the need for the client to be aware of the existence of bookkeeping or modes..

2. uml圖(http://www.th7.cn/Program/java/2012/03/23/65776.shtml)

??

3. 實例(http://www.th7.cn/Program/java/2012/03/23/65776.shtml)

//抽象接收者,定義了每個接收者應該完成的業務邏輯 abstract class AbstractReceiver { public abstract void doJob(); } // 具體接收者01,實現自己真正的業務邏輯 class Receiver01 extends AbstractReceiver { public void doJob() { System.out.println("接收者01 完成工作 .../n"); } } // 具體接收者02,實現自己真正的業務邏輯 class Receiver02 extends AbstractReceiver { public void doJob() { System.out.println("接收者02 完成工作 .../n"); } } 命令類: // 抽象命令類,定義了每個具體命令被執行的入口方法execute() abstract class AbstractCommand { public abstract void execute(); } // 具體命令類01,通過構造函數的參數決定了該命令由哪個接收者執行 class Command01 extends AbstsractCommand { private AbstractReceiver receiver = null; public Command01(AbstractReceiver receiver) { this.receiver = receiver; } public void execute() { System.out.println("命令01 被發布 ..."); this.receiver.doJob(); } } // 具體命令類02,通過構造函數的參數決定了該命令由哪個接收者執行 class Command02 extends AbstractCommand { private AbstractReceiver receiver = null; public Command02(AbstractReceiver receiver) { this.receiver = receiver; } public void execute() { System.out.println("命令02 被發布 ..."); this.receiver.doJob(); } } 調用者類: // 調用者,負責將具體的命令傳送給具體的接收者 class Invoker { private AbstractCommand command = null; public void setCommand(AbstractCommand command) { this.command = command; } public void action() { this.command.execute(); } }

測試類

//測試類 public class Client { public static void main(String[] args) { // 創建調用者 Invoker invoker = new Invoker(); // 創建一個具體命令,并指定該命令被執行的具體接收者 AbstractCommand command01 = new Command01(new Receiver01()); // 給調用者發布一個具體命令 invoker.setCommand(command01); // 調用者執行命令,其實是將其傳送給具體的接收者并讓其真正執行 invoker.action(); AbstractCommand command02 = new Command01(new Receiver02()); invoker.setCommand(command02); invoker.action(); } }

測試結果

命令01 被發布 ... 接收者01 完成工作 ...命令02 被發布 ... 接收者02 完成工作 ...

轉載于:https://www.cnblogs.com/davidwang456/p/3847986.html

總結

以上是生活随笔為你收集整理的command pattern的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 波多野结衣一二三区 | 手机电影在线观看 | 开心激情网五月天 | 一级高清视频 | 91精品导航 | 国产无码精品久久久 | 男女一级片 | 日韩美女啪啪 | 国产一区二区毛片 | 成人免费午夜视频 | 伊人国产在线观看 | 久久精品www人人爽人人 | 日韩在线观看一区二区 | 精品无码久久久久久久 | 99精品一区二区 | 亚洲av午夜精品一区二区三区 | 激情文学欧美 | 精品视频中文字幕 | 射射射综合网 | 欧美日韩激情 | av在线不卡免费 | 久久久久久av无码免费网站 | 国产精视频| 国产女同在线观看 | 91手机在线| 黄色免费网站 | 极品少妇视频 | 亚洲婷婷在线观看 | 久久r这里只有精品 | 91噜噜噜| 美女黄视频在线观看 | 无码一区二区三区免费视频 | 亚洲蜜桃在线 | 亚洲激情成人网 | 久久久久18| av电影在线播放 | 青草视频免费观看 | 麻豆porn| 国产综合内射日韩久 | 天堂av手机版 | 国产黄色大片免费看 | 亚洲图片另类小说 | 播金莲一级淫片aaaaaaa | 成人综合网站 | 男操女视频网站 | 秋霞福利网 | 五月天超碰| 四虎影视免费在线观看 | 欧美双性人妖o0 | 秋霞午夜伦理 | 国产精品久久久 | 久久偷拍免费视频 | 亚洲精品免费网站 | 黄色特级毛片 | 天堂中文在线播放 | 亚洲av熟女一区 | 大学生三级中国dvd 日韩欧美一区二区区 | 99国产精品人妻噜啊噜 | 美女又黄又免费的视频 | 黄色免费在线网址 | 天堂中文网 | 亚洲淫视频 | 成人夜色视频 | 欧美一区二区三区在线观看 | 日韩免费av一区二区 | 欧美视频在线免费看 | 泽村玲子在线 | xxxxx黄色 | 日本在线不卡一区二区 | 色噜噜色综合 | a国产精品| 欧美成人精品一区二区综合免费 | 黄色日韩| 亚洲日本成人在线观看 | 国产精品久久久久久久久免费看 | 午夜丰满寂寞少妇精品 | 国产午夜无码精品免费看奶水 | 看全黄大色黄大片美女人 | 免费无码av片在线观看 | 成人羞羞国产免费游戏 | 97在线看| 91人人干| 日韩中文三级 | 97九色 | 精品国产乱码久久久久久牛牛 | 黄网站在线播放 | 在线观看wwww| 中文有码在线 | jizz视频| 97超碰站| 91在线中文字幕 | 国产一区二区亚洲 | 在线观看精品 | 夜夜添无码一区二区三区 | 337p日本欧洲亚洲大胆张筱雨 | 国产精品久久久久久久久久小说 | 蜜桃视频在线观看www | 毛片av网站| 国产你懂得 |