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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

【转】设计模式学习笔记之命令模式

發布時間:2025/3/15 asp.net 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】设计模式学习笔记之命令模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義:將請求封裝成對象,以便使用不同的請求、隊列或者日志來參數化其他對象。命令模式支持可撤銷等操作。

命令模式將發出請求的對象和執行請求的對象解耦。在被解耦的兩者之間是通過命令對象進行溝通的。

案例代碼下載

案例情景:開燈和關燈操作是電燈的基本操作。我們用命令模式模擬這種情景。

Handler.java

[java] view plaincopyprint?
  • public class Handler {?
  • ??? public static final int LIGHT_OPEN = 0;?
  • ??? public static final int LIGHT_CLOSE= 1;?
  • ??? public void handleMessage(Message msg){?
  • ??????? int what = msg.what;?
  • ??????? Light l = (Light) msg.obj;?
  • ??????? switch(what){?
  • ??????? case LIGHT_OPEN :?
  • ??????????? l.lightOn();?
  • ??????????? break;?
  • ??????? case LIGHT_CLOSE:?
  • ??????????? l.lightOff();?
  • ??????????? break;?
  • ??????? }?
  • ??? }?
  • }?
  • public class Handler {public static final int LIGHT_OPEN = 0;public static final int LIGHT_CLOSE= 1;public void handleMessage(Message msg){int what = msg.what;Light l = (Light) msg.obj;switch(what){case LIGHT_OPEN :l.lightOn();break;case LIGHT_CLOSE:l.lightOff();break;}} } Message.java

    [java] view plaincopyprint?
  • public class Message {?
  • ??? int what;?
  • ??? int arg1;?
  • ??? int arg2;?
  • ??? Object obj;?
  • ??? Handler mHandler;?
  • ??? public Message(int what,Object obj){?
  • ??????? this.what = what;?
  • ??????? this.obj = obj;?
  • ??? }?
  • ??? public void setTarget(Handler handler){?
  • ??????? mHandler = handler;?
  • ??? }?
  • ??? public void sendMessage(){?
  • ??????? mHandler.handleMessage(this);?
  • ??? }?
  • }?
  • public class Message {int what;int arg1;int arg2;Object obj;Handler mHandler;public Message(int what,Object obj){this.what = what;this.obj = obj;}public void setTarget(Handler handler){mHandler = handler;}public void sendMessage(){mHandler.handleMessage(this);} } Light.java

    [java] view plaincopyprint?
  • public class Light {?
  • ??? public void lightOn(){?
  • ??????? System.out.println("開燈");?
  • ??? }?
  • ??? public void lightOff(){?
  • ??????? System.out.println("關燈");?
  • ??? }?
  • }?
  • public class Light {public void lightOn(){System.out.println("開燈");}public void lightOff(){System.out.println("關燈");} }
    Test.java

    [java] view plaincopyprint?
  • /**
  • * 命令模式使命令發送者與命令接收者完全解耦,他們互相不需要知道對方的邏輯實現。
  • * Message即是命令的包裝者,也是命令的發送者,其實真正的發送者是Handler
  • * 客戶端也就是命令的接收者,Light,怎么開燈,怎么關燈,我們不需要知道其內部邏輯,我們只需發出命令。
  • * @author
  • *
  • */?
  • public class Test {?
  • ??? public static void main(String args[]){?
  • ??????? Handler handler = new Handler();?
  • ??????? Light light = new Light();//命令接收者?
  • ?????????
  • ??????? Message lightOn = new Message(handler.LIGHT_OPEN, light);//包裝一條開燈的消息?
  • ??????? Message lightOff = new Message(handler.LIGHT_CLOSE, light);//包裝一條關燈的消息?
  • ?????????
  • ??????? lightOff.setTarget(handler);?
  • ??????? lightOn.setTarget(handler);?
  • ?????????
  • ??????? lightOn.sendMessage();//發出命令?
  • ??????? System.out.println("--------------------");?
  • ??????? lightOff.sendMessage();//發出命令?
  • ?
  • ??? }?
  • }?
  • /*** 命令模式使命令發送者與命令接收者完全解耦,他們互相不需要知道對方的邏輯實現。* Message即是命令的包裝者,也是命令的發送者,其實真正的發送者是Handler* 客戶端也就是命令的接收者,Light,怎么開燈,怎么關燈,我們不需要知道其內部邏輯,我們只需發出命令。* @author**/ public class Test {public static void main(String args[]){Handler handler = new Handler();Light light = new Light();//命令接收者Message lightOn = new Message(handler.LIGHT_OPEN, light);//包裝一條開燈的消息Message lightOff = new Message(handler.LIGHT_CLOSE, light);//包裝一條關燈的消息lightOff.setTarget(handler);lightOn.setTarget(handler);lightOn.sendMessage();//發出命令System.out.println("--------------------");lightOff.sendMessage();//發出命令} }
    測試結果:

    [java] view plaincopyprint?
  • 開燈?
  • --------------------?
  • 關燈?
  • 開燈 -------------------- 關燈
    總結:命令模式有很多變種,規整的命令模式會將命令委托給接收者,但我們也可以在命令包裝類中就實現命令處理邏輯。

    總結

    以上是生活随笔為你收集整理的【转】设计模式学习笔记之命令模式的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 成人av在线看 | 永久久久久久久 | 国产又粗又硬又长又爽的演员 | 欧美 国产 日本 | 亚洲女同女同女同女同女同69 | 日韩美女一区二区三区 | 亚洲aaa| 天天天天天干 | 337p日本欧洲亚洲大胆张筱雨 | www.96av| 99国产在线视频 | 国产伦精品一区二区 | 国产又粗又猛又爽免费视频 | 国产一区久久久 | 中午字幕在线观看 | 国产av无毛 | 黑丝美女啪啪 | 免费看一区二区三区 | 亚洲欧美视频二区 | 国产视频手机在线播放 | 啪啪一级片 | 美女在线一区 | 黄网站在线免费看 | 色呦呦一区二区三区 | 国产av精国产传媒 | 精品1区2区 | 日韩黄色一级大片 | 国产高清不卡av | 日韩一页 | 国产女人毛片 | 丁香激情综合 | 雨宫琴音一区二区三区 | 狠狠干2021 | 91福利视频导航 | 樱花电影最新免费观看国语版 | 日韩三级视频在线 | 九九精品免费 | 黑人玩弄人妻一区二区绿帽子 | 欧美日韩一区二区三区在线 | 精品午夜福利在线观看 | 免费超爽大片黄 | 亚洲欧美日韩一区二区三区四区 | 亚瑟av在线| 一级黄色大片网站 | 波多野结衣黄色片 | 女教师痴汉调教hd中字 | 亚洲午夜精品久久久久久app | 韩国视频一区 | 免费看片色 | 青青久久久 | 成人激情小说网站 | 日韩国产精品一区二区三区 | 国产污视频在线看 | 国产亚洲黄色片 | 奇米综合 | 精品国产一级久久 | 热99视频 | 久久五月天婷婷 | 在线日韩国产 | 久久网一区 | 欧美一区二区三区成人精品 | 日本中文在线 | 先锋资源国产 | 婷婷麻豆 | 亚洲欧美日韩国产一区 | 蜜桃成熟时李丽珍在线观看 | 超碰97在线资源 | 国产特级av | 亚洲va国产va天堂va久久 | 国产一区二区三区精品视频 | 国产精品福利网站 | 亚洲福利电影网 | 国产爽视频 | 天堂中文在线8 | 九色影视 | 九九自拍视频 | 无码任你躁久久久久久老妇 | 日韩在线你懂的 | 成人啪啪网站 | 日韩经典在线观看 | www.亚洲| 欧美日韩亚洲国产 | 一级性爱视频 | 中文字幕一区二 | 日韩一卡二卡三卡四卡 | 精品国产影院 | 免费看黄视频的网站 | 久久久情 | 久久久三级视频 | 亚洲爱v| 天天色播 | av网站在线免费看 | 日本福利片在线观看 | 日本xxxx高潮少妇 | 天天干天天爽 | 亚洲人成人一区二区在线观看 | wwwav在线 | 国产高清免费在线 | 1024手机在线看片 |