1.意图:
将一个请求或操作封装到对象中。
2.类图:
3.原理:
命令模式是对命令的封装,命令模式把发出命令的责任和执行命令的责任分割开。
每个命令都是一个操作:请求方发出请求要求执行一个操作,接收方收到请求并执行操作。命令模式允许请求方和接收方独立开来,使得请求方不必知道接收方的接口以及操作如何被执行。
4.特征:
请求者(Invoker): 负责发出命令请求。
接收者(Receiver):具体实施或执行一个请求。
抽象命令(Command):给出所有具体命令的抽象接口。
具体命令(ConcreteCommand):定义一个接收者和行为之间的弱耦合,实现抽象命令的方法,负责调用接收者的相应操作。
客户端(Client):创建一个具体的命令对象,并确定其接收者。
5.说明:
6.使用案例:
7.代码:
// Invoker.java请求者
public class Invoker
{
private Command command;
public Invoker(Command command)
{
this.command = command;
}
public void action()
{
command.execute();
}
}
// Command.java抽象命令
public interface Command
{
/**
* this method is called by client to execute this command
*/
void execute();
}
// ConcreteCommand.java 具体命令
public class ConcreteCommand implements Command
{
private Receiver receiver;
public ConcreteCommand(Receiver receiver)
{
this.receiver = receiver;
}
public void execute()
{
receiver.action();
}
}
// Receiver.java 接收者
public class Receiver
{
public Receiver()
{
}
public void action()
{
System.out.print("do some action");
}
}
// Client.java 客户端
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();
}
}
分享到:
相关推荐
设计模式之命令模式 设计模式之命令模式代码 设计模式之命令模式代码
命令模式(Command) 用意:把一个请求封装到一个对象中,把发出命令和执行命令的责任分开,委派给不同的对象实现。
设计模式之命令模式,你值得拥有,帮你快速掌握命令模式的实例。
命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或纪录请求日志,以及支持可撤销的操作。 那么让我们简要的说一下命令模式的特点。 它能比较容易地设计一个...
设计模式这命令模式的Java实现版本和UML设计类图
学习js设计模式的例子,用到了命令模式、修装模式
命令模式代码demo 命令模式代码demo 命令模式代码demo
C#设计模式之 -- 命令模式代码示例和应用Dome
命令模式的示例代码和文档,学习命令模式的参考资料。
C#命令模式应用
命令模式(多命令)的代码(Java), 详细描述了命令模式(多命令)的代码架构.
ios平台中通过最简单的代码讲解命令模式,可在博客http://blog.sina.com.cn/s/blog_161d504630102wxis.html中查看简单解释
命令模式的C++实现
设计模式--命令模式java例子
设计模式C++学习之命令模式(Command)
C#命令模式模型,参考GOF 《设计模式》,模型代码。
命令模式:某个方法需要完成某一个行为,但这个行为的具体实现无法确定,必须等到执行该方法时才可以确定, * 这是一个命令模式的一个实例
命令模式,最简单的实现命令模式,没有对需求的负责理解,只针对模式本身。最纯粹的体现命令模式的特点
命令模式的示例代码及类图(用powerDesign画的),都是自己亲手写的,很简单,看不懂你来杀我! 注:oom文件需要手工用powerDesign打开,默认没有被PD关联。