命令模式
定义
命令模式(Command Pattern)是一种数据驱动的设计模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
类图
Command(命令)
负责定义命令的接口
ConcreteCommand(具体的命令)
负责实现在Command中定义的接口。
Receiver(接收者)
是Command执行命令时的对象,也可以称之为命令接收者。
Client(请求者)
负责生成ConcreteCommand并分配Receiver。
Invoke(发动者)
是开始执行命令的角色,它会调用在Command中定义的接口。
示例
类图
Command
1 | public interface Command { |
MacroCommand
1 | public class MacroCommand implements Command { |
Drawable
1 | public interface Drawable { |
DrawCanvas
1 | public class DrawCanvas extends Canvas implements Drawable { |
DrawCommand
1 | public class DrawCommand implements Command { |
Main
1 | public class Main extends JFrame implements ActionListener, MouseMotionListener, WindowListener { |