程式設計素質 設計模式 命令模式

2021-07-23 21:42:53 字數 1808 閱讀 9375

命令模式(command pattern):

將請求封裝成物件,著可以讓你使用不同的請求、佇列,或者日誌請求來引數化其他物件。命令模式也可以支援撤銷操作。

①需要將發出請求的物件和執行請求的物件解耦的時候,使用命令模式。

②系統需要在不同的時間指定請求、將請求排隊和執行請求。

③系統需要支援命令的撤銷(undo)操作和恢復(redo)操作。

④系統需要將一組操作組合在一起,即支援巨集命令。

優: ①將「動作的請求者」從「動作的執行者」物件中解耦。

②新的命令可以很容易地加入到系統中。

③可以比較容易地設計乙個組合命令。

④呼叫同一方法實現不同的功能 缺:

使用命令模式可能會導致某些系統有過多的具體命令類

封裝呼叫。

/** * 實現遙控器

* @author luo

* */

public class main

}

package commandpattern;

/** * 為所有命令宣告乙個介面

* @author luo

* */

public inte***ce command

package commandpattern;

public class concreatecomand_lightoff implements command

@override

public void execute()

@override

public void undo()

}

package commandpattern;

/** * 具體命令類,實現command介面。

* @author luo

* */

public class concreatecomand_lighton implements command

@override

public void execute()

@override

public void undo()

}

package commandpattern;

public class receiver_light

public void on()

public void off()

}

package commandpattern;

/** * 撤銷按鈕類

* 用來追蹤最後被呼叫的命令

* @author luo

* */

public class invoker_remotecontrolwithundo

undocommand = null; }

public void setcommand(int i, command oncommand, command offcommand)

public void onbuttonwaspushed(int i)

public void offbuttonwaspushed(int i)

public void undobuttonwaspushed()

}

設計模式 命令設計模式

一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象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...