91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

設計模式之命令模式-使用命令模式實現遙控器及總結

發布時間:2020-08-11 19:08:59 來源:網絡 閱讀:402 作者:凱哥Java 欄目:編程語言

設計模式之命令模式-使用命令模式實現遙控器及總結

先來看看項目結構:
設計模式之命令模式-使用命令模式實現遙控器及總結

說明:

1:命令接口對象

2:電燈打開或關閉命令

3:音響打開或關閉命令

4:音響音量增加或減少命令

來源:凱哥Java(kaigejava)

電燈開或關代碼:

/**

  • Created by kaigejava on 2019/8/30.

  • 關燈的命令對象

*/

public class LightOffCommand implements ICommandInterface{

private LightAPI light;

public LightOffCommand(LightAPI light){

   this.light = light;

}

@Override

public void execute() {

   light.Off();

}

@Override

public void undo() {

   light.On();

}

}

增加音響音量的類:

/**

  • Created by kaigejava on 2019/8/30.

  • 給音響增加音量命令對象

*/

public class StereoAddVolCommand implements ICommandInterface{

private StereoAPI setreo;

public StereoAddVolCommand(StereoAPI stereo){

   this.setreo = stereo;

}

@Override

public void execute() {

   int vol=   setreo.GetVol();

   if(vol<11)

   {

       setreo.AddVolume(++vol);

   }

}

@Override

public void undo() {

   int vol=   setreo.GetVol();

   if(vol>0)

   {

       setreo.downVolume(--vol);

   }

}

}

命令模式總結:

1:內容

什么是命令模式?命令模式定義。參見上一篇

2:角色

invoker:調用者(如遙控器對象)

Command:命令接口或抽象類(如命令案例中命令接口)

received命令具體實現類(如電燈開對象、音響音量加/減對象)

3:執行順序

調用者-->接收者-->命令

4:使用場景

當行為的請求者與行為的實現者之間需要解耦的時候(如遙控器項目,請求者是遙控器,行動實現者是各個不同的家電設備),這種場景下可以使用

5:何時使用

在某些場合,比如要對行為進行"記錄、撤銷/重做、事務"等處理,這種無法抵御變化的緊耦合是不合適的。在這種情況下,如何將"行為請求者"與"行為實現者"解耦?將一組行為抽象為對象,可以實現二者之間的松耦合。在某些場合,比如要對行為進行"記錄、撤銷/重做、事務"等處理,這種無法抵御變化的緊耦合是不合適的。在這種情況下,如何將"行為請求者"與"行為實現者"解耦?將一組行為抽象為對象,可以實現二者之間的松耦合。

6:優缺點

優點:

1、降低了系統耦合度;

2、新的命令可以很容易添加到系統中去。

缺點:

使用命令模式可能會導致某些系統有過多的具體命令類。比如我們遙控器項目中就多了很多具體命令對象。

聯系凱哥--》凱哥Java(kaigejava)或凱哥個人博客:www.kaigejava.com 博客上私聊凱哥哦~

7:注意事項

系統需要支持命令的撤銷(Undo)操作和恢復(Redo)操作,也可以考慮使用命令模式

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岢岚县| 阜阳市| 正蓝旗| 宜城市| 乾安县| 兰西县| 保靖县| 镶黄旗| 塘沽区| 墨玉县| 平顶山市| 九龙坡区| 文登市| 改则县| 崇仁县| 新巴尔虎右旗| 安庆市| 施秉县| 宜良县| 南陵县| 观塘区| 岳普湖县| 乌鲁木齐市| 东丽区| 韩城市| 抚松县| 乌鲁木齐县| 会昌县| 武城县| 贺州市| 遵义县| 蒙山县| 荥阳市| 正阳县| 正镶白旗| 双峰县| 蚌埠市| 嵊泗县| 石景山区| 疏附县| 修武县|