13、命令(Command)模式
命令模式(Command)是对命令的封装,命令模式把发出命令的责任和执行命令的责任分开,委派给不同的对象。
命令模式的五个角色:
- 客户角色(Client):创建一个具体命令对象(Concrete Command),并确定其接收者。
- 命令角色(Command):声明一个给所有具体命令类的抽象接口,这是一个抽象角色,由抽象和接口实现。
- 具体命令(ConcreteCommand):定义一个接收者和行为之间的弱耦合;实现execute()方法,负责调用接收者的相应操作。
- 请求者角色(Invoker): 负责调用命令对象执行请求。
- 接收者(Receiver):负责具体实施和执行一个请求
实例代码:
/* 抽象命令角色 */
public interface Command {
void execute();
}
/* 具体命令角色 */
public class ConcreteCommand implements Command
{
public ConcreteCommand(Receiver receiver)
{
this.receiver = receiver;
}
public void execute()
{
receiver.action();
}
/**
* @directed
* @clientRole receiver
*/
private Receiver receiver;
}
public class Receiver
{
public Receiver()
{
//write code here
}
public void action()
{
System.out.println("Action has been taken.");
}
}
/* 请求者角色 */
public class Invoker
{
public Invoker(Command command)
{
this.command = command;
}
public void action()
{
command.execute();
}
/**
* @link aggregation
* @directed
*/
private Command command;
}
/* 客户端 */
public class Client
{
public static void main(String[] args)
{
Receiver receiver = new Receiver();
Command command = new ConcreteCommand(receiver);
Invoker invoker = new Invoker( command );
invoker.action();
}
/** @link dependency */
/*#Receiver lnkReceiver;*/
/** @link dependency */
/*#Invoker lnkInvoker;*/
}
分享到:
相关推荐
命令Command模式是GOF23种模式中的一种,是一种行为模式。这种模式很难理解。《设计模式》一书中对它语焉不详。而网上的一些文章对其的解释也是错误的。实际上,命令模式并不是那么神秘。 命令模式的理解,关键有2点...
Command设计模式ppt 代码示例 设计模式 Command ppt 代码实例 撤销重做实例
C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式
有关设计模式里边的命令模式,内含ppt、源代码及结果、word整理。在此以供大家学习交流。
设计模式C++学习之命令模式(Command)
命令模式(Command) 用意:把一个请求封装到一个对象中,把发出命令和执行命令的责任分开,委派给不同的对象实现。
用java实现命令模式。展现命令模式类与类之间的继承,依赖关系。
命令模式
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。
C++设计模式代码资源23_Command_命令模式.zip
命令模式是一种行为设计模式,它将一个请求封装成一个对象,从而允许用户根据不同的请求对客户进行参数化;同时,它也支持撤销操作。 命令模式的核心在于通过命令对象实现调用操作和实现操作的解耦。这种模式通常...
Head First 设计模式 (六) 命令模式(Command pattern) C++实现
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”的问题
命令模式Command将请求封装成对象,以便使用不同的请求、队列、或者日志来参数化其他对象。命令模式也支持可撤销的操作。
C++设计模式课件23_Command_命令模式.pdf
用最简单的例子理解命令模式(Command Pattern) 命令模式的需求源自想通过一个指令(比如这里IControl的Execute方法)来控制多个类的多个方法,包含了几个要素: 1、命令:让类的各种方法抽象成类实现一个接口 2、...
Command(命令)模式[定义].pdf
主要介绍了Java设计模式之命令模式(Command模式)介绍,本文讲解了Command模式的定义、如何使用命令模式等内容,需要的朋友可以参考下