日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人av动漫在线观看 | 18视频在线观看男男 | 美女av免费在线观看 | 大学生av| 91秦先生在线播放 | 麻豆爱爱 | 污污网站在线观看视频 | 中文字幕一区二区三区电影 | 成人黄色小视频 | 亚洲私人影院 | 久久久久久久久久久久国产 | 免费看的av网站 | 打屁股疼的撕心裂肺的视频 | 日韩一区二区三区精品 | 国产三级按摩推拿按摩 | 天天av天天干 | 99re只有精品 | 丰满人妻翻云覆雨呻吟视频 | 欧美日本国产在线 | 激情综合文学 | 午夜宅男网 | 国模在线视频 | 性欧美videossex精品 | 久草网在线视频 | 日韩av高清在线播放 | av在线不卡免费观看 | 日韩和欧美的一区二区 | 国产av无码专区亚洲av | 久久一区二区三区四区 | 精品乱人伦一区二区三区 | 噜噜视频 | 日本中文字幕在线观看 | 欧美黄网站 | 久99热| 亚洲天堂男人的天堂 | jizz性欧美15 | av一二区| 四虎4hu永久免费网站影院 | 91桃色在线观看 | 欧美极品在线观看 | 日韩一区2区 | xxxxwww国产| 波多野结衣视频网址 | 久久成人视屏 | 亚洲成av人影院 | wwwwxxxx欧美| 欧美黑人又粗又大高潮喷水 | 51av视频| 国产麻豆精品在线 | 成人香蕉视频 | 日韩av福利| 欧美vieox另类极品 | 久久在现 | 欧美视频久久久 | 国产不卡一| 在线婷婷 | 激情久久中文字幕 | 国产在线播放一区二区 | 欧美乱论视频 | 人妻天天爽夜夜爽一区二区三区 | 国产精品视频在线观看免费 | 谁有毛片网站 | 青青青国产精品一区二区 | 加勒比成人av | 久久午夜场 | 少妇人妻综合久久中文字幕 | 日欧美女人 | 在线观看中文字幕码 | 国产一区二区三区四区三区四 | 中国一级特黄真人毛片免费观看 | 色欲一区二区三区精品a片 在线观看黄网站 | 日韩精品一区二区电影 | 五月天婷婷色综合 | 91成人免费在线观看视频 | 国产一区二区波多野结衣 | 可以免费观看av | 少妇一级淫片日本 | 蜜桃臀aⅴ精品一区二区三区 | 色噜噜狠狠成人中文 | 天天干网址 | eeuss国产一区二区三区黑人 | 女生扒开腿让男生操 | 免费av在线播放 | 神马久久久久久久 | 免费看91 | 久久久久久久久久久影院 | 美女黄视频大全 | 久久爱伊人 | 国产精品suv一区二区69 | 影音先锋男人天堂 | 日韩mv欧美mv国产网站 | 毛片a片免费观看 | 国产又粗又长又黄视频 | 动漫3d精品一区二区三区乱码 | 激情插插 | 涩涩网站在线观看 | 逼特逼视频在线观看 | 国产又粗又爽视频 | 精品国模 |