参考:http://www.jdon.com/designpatterns/command.htm
还在看大话设计模式,今天偶然翻到命令模式,所以写写~~下面的内容均和此书有关。
命令模式(Command),将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
优点:解耦了发送者和接受者之间联系。
缺点:1个类变成3个类,多了好多类。
主要集中到这个原型图
Invoker类 被客户端调用,可以接受命令请求,设计命令队列,决定是否相应该请求,记录或撤销或重做命令请求,记录日志等等.
public class Invoker {
private Command command;
public void setOrder(Command command) {
this.command = command;
}
public void ExecuteCommand() {
command.ExecuteCommand();
}
}
Command类,将一个请求封装成一个对象,将一个请求具体化,方便对请求记录。
public abstract class Command {
protected Receiver receiver;
public Command(Receiver receiver){
this.receiver = receiver;
}
public abstract void ExecuteCommand();
}
ConcreteCommand类,可以将Receiver对象放到这个类里面,这个类具体实现了要怎么处理这个用户的请求。
public class ConcreteCommand extends Command {
public ConcreteCommand(Receiver receiver){
super(receiver);
}
@Override
public void ExecuteCommand() {
receiver.Execute();
}
}
Receiver类,其实这个类可以没有,不过为了让设计看起来更整洁清楚。
public class Receiver {
public void Execute(){
System.out.println("Receiver excute!");
}
}
最后一个Client类。
public class Client {
public static void main(String[] args) {
Receiver r = new Receiver();
Command c = new ConcreteCommand(r);
Invoker i = new Invoker();
i.setOrder(c);
i.ExecuteCommand();
}
}
最后一个书上面的示例
分享到:
相关推荐
C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式
Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”的问题
C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式 (Level 300)
Command命令模式介绍[参照].pdf
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第15节:行为型模式Command命令模式
NULL 博文链接:https://walson.iteye.com/blog/391493
主要介绍了详解设计模式中的Command命令模式及相关C++实现,命令模式强调调用操作的对象和操作的具体实现者之间的解耦,需要的朋友可以参考下
Command设计模式ppt 代码示例 设计模式 Command ppt 代码实例 撤销重做实例
设计模式C++学习之命令模式(Command)
命令模式(Command) 用意:把一个请求封装到一个对象中,把发出命令和执行命令的责任分开,委派给不同的对象实现。
C++设计模式代码资源23_Command_命令模式.zip
有关设计模式里边的命令模式,内含ppt、源代码及结果、word整理。在此以供大家学习交流。
用java实现命令模式。展现命令模式类与类之间的继承,依赖关系。
命令模式
C++设计模式课件23_Command_命令模式.pdf
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。
Head First 设计模式 (六) 命令模式(Command pattern) C++实现
命令模式是一种行为设计模式,它将一个请求封装成一个对象,从而允许用户根据不同的请求对客户进行参数化;同时,它也支持撤销操作。 命令模式的核心在于通过命令对象实现调用操作和实现操作的解耦。这种模式通常...
C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式 C#面向对象设计模式纵横谈(16):(行为型模式) Interpreter 解释器模式 C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式 C#...