java设计模式—命令模式
一.概述
命令模式是指将请求(命令)封装为一个对象,对不同的请求进行参数化,在接收到命令后,根据不同的参数调用不同的命令执行对象。
二.模式示例:
我们以通过命令方式来操作图片左转右转的方式来讲解命令模式的具体实现过程,代码如下:
1.创建命令类
public class Command {
private ImageRotate image;
public Command(ImageRotate image){
this.image = image;
}
public void execute(){
this.image.rotate();
}
}
2.创建图片旋转抽象类
public abstract class ImageRotate {
public abstract void rotate();
}
3.创建图片左转类
public class ImageTurnLeft extends ImageRotate{
@Override
public void rotate() {
System.out.println("turn left");
}
}
4.创建图片右转类
public class ImageTurnRight extends ImageRotate{
@Override
public void rotate() {
System.out.println("TurnRight");
}
}
5.创建命令执行类
public class Invoker {
private Command command;
public void setCommand(Command command){
this.command = command;
}
public void action() {
this.command.execute();
}
}
6.模式调用
public class Test {
public static void main(String[] args){
Invoker invoker = new Invoker();
Command command = new Command(new ImageTurnLeft());
invoker.setCommand(command);
invoker.action();
ImageRotate imageRight = new ImageTurnRight();
invoker.setCommand(new Command(imageRight));
invoker.action();
}
}