命令模式:
其实我们已经用了不知道多少次这个模式了,我们在使用struts webwork的时候,其地层就采用的命令模式进行资源分发的。
UML图:
下班了 ,下周再说
上图描述,角色:调用者,命令,接受者,客户端。
代码示例:调用者
1、
public class Invoker {
Command command;
public void setCommand(Command command) {
this.command = command;
}
public Invoker() {
}
public void invoker{
command.execute();
}
}
二:
public interface Command {
public void execute();
public void undo();
}
三:
public class ConCommand implements Command{
Receiver receiver;
public ConCommand() {
// TODO Auto-generated constructor stub
}
public ConCommand(Receiver receiver){
this.receiver = receiver;
}
@Override
public void execute() {
receiver.action();
}
@Override
public void undo() {
// TODO Auto-generated method stub
}
}
四:
public class Receiver {
public void action() {
.......................................;
}
}
五:
public class Client
{
Receiver rceiver = new Receiver();
Command command = new ConcreteCommand(rceiver);
Invoker invoker = new Invoker();
/** *//** Creates a new instance of CommandPattern */
public Client()
{
}//end CommandPattern
public void showCommandPattern()
{
invoker.setCommand(command);
invoker.invoker();
}//end showCommandPattern()
public static void main(String[] args)
{
System.out.println("----------------------");
System.out.println("The Command Pattern!");
CommandPattern cp = new CommandPattern();
cp.showCommandPattern();
System.out.println("----------------------");
}//end main(...)
}//end class CommandPattern
这个就是我们说的命令模式了,
当然它也支持undo操作,就是记录用户的上一次操作或者是一系列的操作。
要点:
- invoker和recei ver解耦;
- invoker receiver 通过command沟通
- invoker通过command的execute发出请求,间接调用receiver
- invoker介绍命令作为参数
- 支持撤消操作
- 宏命令批处理
- 也可以实现事务和日志操作
分享到:
相关推荐
设计模式之命令模式 设计模式之命令模式代码 设计模式之命令模式代码
命令模式(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关联。