什麼是命令模式結構
命令介面:命令是乙個介面,規定了用來封裝「請求」的若干個方法
具體命令:實現命令介面的類的例項
請求者:包含了命令介面的例項,可以通過呼叫具體的命令去執行封裝了請求的方法 實現
我們就按遙控器的例子來設計,假設我們有乙個10個按鈕的遙控器,兩個控制燈的開關,兩個控制電視的開關,剩下的留作未來產品的按鈕,現在點上去沒有效果,除了這四個按鈕,還有乙個特殊的撤銷按鈕,用來撤銷上一步的操作。
具體實現:
public class tv
public void setoff()
}
2.電燈
public class light
public void setoff()
}
public inte***ce icommand
public class lightoncommand implements icommand
@override
public void execute()
@override
public void undo()
}
2.電燈關的命令
public class lightoffcommand implements icommand
@override
public void execute()
@override
public void undo()
}
3.電視開的命令
public class tvoncommand implements icommand
@override
public void execute()
@override
public void undo()
}
4.電視關的命令
public class tvoffcommand implements icommand
@override
public void execute()
@override
public void undo()
}
5.空命令,用來初始化每個遙控器的按鈕
public class nocommand implements icommand
@override
public void undo()
}
public class control
@override
public void execute()
@override
public void execute() {
for(int i = 0;i主函式,在上面主函式的基礎上加入
arraylistallon = new arraylist<>();
allon.add(lon);
allon.add(ton);
icommand aon = new alloffcommand(allon);
arraylistallff = new arraylist<>();
allff.add(lof);
allff.add(tof);
icommand aof = new alloffcommand(allff);
c.setoncommand(2, aon);
c.setoffcommand(2, aof);
c.onbutton(2);
c.offbutton(2);
結果
適用場景
這就是我所理解的命令模式,如果我有什麼錯誤或者你有更好的想法請告訴我。
設計模式 命令設計模式
一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象command 命令的具體實現concretecommand 命令處理者抽象ireceiver 命令處理者的具體實現concretereceiver 命令的呼叫者invoker 客戶端client...
設計模式 命令模式
1 命令模式的角色組成 1 命令角色 command 生命執行操作的介面。介面或抽象類來實現。2 具體命令角色 concrete command 將乙個接收者物件繫結於乙個動作 呼叫接收者相應的操作,以實現命令角色宣告的執行操作的介面。3 客戶角色 client 建立乙個具體命令物件 並可以設定它的...
設計模式 命令模式
1 command.h ifndef command h define command h include include include using namespace std class chef 廚師,具體命令的執行者 class command 命令基類 class makemuttonco...