設計模式 命令模式

2021-08-19 06:14:21 字數 1769 閱讀 3548

房間中的開關是命令模式的乙個例項,現用命令模式來模擬開關的功能,可控制物件包括電燈和電風扇,繪製相應的類圖並程式設計模擬實現。

類圖:

實現**:

抽象命令類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...