命令设计模式需要一个操作和附带的参数,并将它们封装在一个对象中来执行,记录等等。在下面的例子中,命令是一个操作,它的参数是一个Computer,而且它们封装在Switch。
从另一个角度看,命令模式有4个部分:命令,接收者,调用者和客户端。在这个例子中,Switch是调用者,Computer是接收者。一个具体的命令有哥接收器对象并调用接收器中的方法。调用者可以使用不同的具体的命令。客户端为接收器管理使用哪一条命令。
1、命令模式类图
2、Java命令模式的例子
package com.leon.command; import java.util.ArrayList; import java.util.List; //命令接口 interface Command { void execute(); } // 在这个例子中,假设你用一个开关来控制电脑 // 一个调用者 class Switch { private List<Command> history = new ArrayList<Command>(); public Switch() { } public void storeAndExecute(Command command) { this.history.add(command); command.execute(); } } // 接收者 class Computer { public void shutDown() { System.out.println("电脑关机"); } public void restart() { System.out.println("电脑重启"); } } //关闭掉闹的命令 class ShutDownCommand implements Command { private Computer computer; public ShutDownCommand(Computer computer) { this.computer = computer; } @Override public void execute() { // TODO Auto-generated method stub computer.shutDown(); } } //重启电脑的命令 class ReStartCommand implements Command { private Computer computer; public ReStartCommand(Computer computer) { this.computer = computer; } @Override public void execute() { // TODO Auto-generated method stub computer.restart(); } } public class Main { // 客户端 public static void main(String[] args) { Computer computer = new Computer(); ShutDownCommand shdcmd = new ShutDownCommand(computer); ReStartCommand rstcmd = new ReStartCommand(computer); Switch sw = new Switch(); String cmd = "shutdown"; if (cmd.equals("shutdown")) { sw.storeAndExecute(shdcmd); } else if (cmd.equals("restart")) { sw.storeAndExecute(rstcmd); } } }
相关推荐
例如责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式...
“[设计模式]在实用环境下特别有用,因为它分类描述了一组设计良好,表达清楚的面向对象软件设计模式。整个设计模式领域还很新,本书的四位作者也许已占据了这个领域造诣最深的专家中的半数,因而他们定义模式的方法...
常见的行为型模式包括策略模式、模板方法模式、观察者模式、迭代器模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式和职责链模式。 在游戏引擎的开发中,设计模式能够以特定方式组织代码...
3. **行为型模式**:包括责任链模式、命令模式、解释器模式、迭代器模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。这些模式主要处理对象之间的交互和职责分配。 例如,单例模式...
**C++设计模式:命令模式** 命令模式是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列或者记录请求日志,同时支持可撤销的操作。在C++编程中,命令模式是一种非常实用的设计模式,能够...
总的来说,《设计模式:可复用面向对象软件的基础》是一本深入理解和应用面向对象设计的必备书籍,它不仅介绍了23种核心设计模式,还提供了大量实例和解释,帮助读者将理论知识转化为实际的编程技巧。通过对这本书的...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式常用于解耦发出命令的对象和执行命令的...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求,以及支持可撤销的操作。在Java编程中,命令模式广泛应用于各种场景,尤其在需要解耦调用者与...
17. 命令模式:命令模式将请求封装为一个对象,使得可以使用不同的请求、队列请求、或者记录请求日志。 18. 责任链模式:责任链模式为请求创建一个接收者对象的链,请求沿着链传递,直到某个对象处理它。 19. 迭代...
- **从命令模式进入编辑模式**:在命令模式下,按下`i`键将进入插入模式,即编辑模式,此时用户可以在当前光标位置输入文本。此外,还可以通过按下`a`键进入附着模式,该模式允许用户在当前光标之后的位置输入文本;...
在 Java 中,命令模式是一种行为设计模式,它将请求封装为对象,允许对客户端进行参数化,包括队列、请求和操作。该模式还支持可撤销的操作,增强了管理和执行命令的灵活性。 二、命令设计模式的别名 Action(动作)...
2. 命令模式:将请求封装为一个对象,以便使用不同的请求、队列请求或参数化请求。 3. 解释器模式:定义一个语言的文法,并提供一个解释器。 4. 迭代器模式:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层...
- 命令模式:将命令封装为对象,以便使用不同的请求、队列或者日志来参数化其他对象。 - 解释器模式:提供一个语言的文法表示,并定义一个解释器来解释该文法中的句子。 - 迭代器模式:提供一种方法顺序访问聚合...
在《设计模式:可复用面向对象软件的基础》一书中,作者Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides(通常被称为GoF,Gang of Four)详细阐述了23种经典的设计模式。这些模式分为三类:创建型模式、...
这部分涉及的模式包括但不限于策略模式、命令模式、迭代器模式等。这些模式的合理应用能够让软件设计更加符合面向对象的原则,使系统具备更好的可扩展性和可维护性。 #### 第五部分:小颗粒度基础模式和应用案例 ...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在iOS开发中,命令模式尤其适用于处理事件驱动的编程场景,因为...
《设计模式:可复用面向对象软件的基础》一书通过详细的案例分析和理论介绍,阐述了23种设计模式,并强调了它们在实际项目中的应用价值。 **重要性:** - **代码复用性:** 设计模式鼓励开发者复用经过验证的解决...
设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象...4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在本文中,我们将深入探讨命令模式的原理、结构和实际应用,并...