詳細示例:(遙控開關燈)
package command;
public
class
light
public
void
on()
public
void
off()
}package command;
/** * 命令介面 執行開關方法 撤銷方法
* */
public
inte***ce
command
package command;
/** * 開燈
* */
public
class
lightoncommand
implements
command
@override
public
void
execute()
@override
public
void
undo()
}package command;
/** * 關燈
* */
public
class
lightoffcommand
implements
command
@override
public
void
execute()
@override
public
void
undo()
}package command;
/** * 用於初始化
* */
public
class
nocommand
implements
command
@override
public
void
undo()
}package command;
/** * 命令的發布者 遙控機(擁有記錄操作過的命令的功能)
* */
public
class
remotecontrolwithundo
undocommand = nocommand;
}public
void
setcommand(int slot, command oncommand, command offcommand)
// 執行並記錄命令
public
void
onbuttonwaspushed(int slot)
public
void
offbuttonwaspushed(int slot)
public
void
undobuttonwaspushed()
}package command;
public
class
client
}
執行結果:
開燈..
關燈…
command.remotecontrolwithundo@15db9742
開燈..
關燈…
開燈..
command.remotecontrolwithundo@15db9742
關燈…
設計模式 命令設計模式
一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象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...