房間中的開關是命令模式的乙個例項,現用命令模式來模擬開關的功能,可控制物件包括電燈和電風扇,繪製相應的類圖並程式設計模擬實現。
類圖:
實現**:
抽象命令類command
:package commandpattern;
public abstract class command {
public abstract void excute();
具體命令類lightcommand
:package commandpattern;
public class lightcommand extends command{
lightreceiver lightreceiver = new lightreceiver();
@override
public void excute() {
system.out.println("開啟電燈開關
");lightreceiver.action();
具體命令類fancommand
:package commandpattern;
public class fancommand extends command {
fanreceiver fanreceiver = new fanreceiver();
@override
public void excute() {
system.out.println("開啟電風扇開關
");fanreceiver.action();
呼叫者類invoker
:package commandpattern;
public class invoker {
private command command;
public invoker(command command){
this.command = command;
public void setcommand(command command) {
this.command = command;
public void call(){
command.excute();
接受者類lightreceiver
:package commandpattern;
public class lightreceiver {
public void action(){
system.out.println("電燈亮
");接受者類fanreceiver
:package commandpattern;
public class fanreceiver {
public void action(){
system.out.println("電風扇轉
");客戶端類client
:package commandpattern;
public class client {
public static void main(string args) {
command command;
// command = new lightcommand();
command = new fancommand();
invoker invoker = new invoker(command);
invoker.call();
設計模式 命令設計模式
一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象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...