命令模式Command Pattern-23种常用设计模式快速入门教程
1.命令模式定义
命令模式是一种行为型设计模式,它将一个请求封装为一个对象,从而可以使用不同的请求对客户进行参数化,还可以支持撤销操作。
2命令模式优点
它可以将调用操作的对象和知道如何实现该操作的对象解耦,它支持撤销操作,它可以将一组操作组合在一起,它可以增加新的命令很容易。
3.命令模式缺点
它可能会导致某些系统有过多的具体命令类,使得系统变得更加臃肿,它增加了系统的复杂度,它增加了额外的开发时间。
传统设计模式讲解时使用的示例代码,大都采用与读者日常生活接解的业务系统没有多大关联关系。以致大部分读者无法做到学以致用,学完就忘记。本文采用使用日常生活中随处可见的订单业务来编写实现代码:
//定义命令模式的抽象命令类
public abstract class OrderCommand {
public abstract void execute();
}
//定义命令模式的具体命令类
public class PlaceOrderCommand extends OrderCommand {
private Order order;
public PlaceOrderCommand(Order order) {
this.order = order;
}
@Override
public void execute() {
order.placeOrder();
}
}
//命令模式的客户端使用
public class Client {
public static void main(String[] args) {
Order order = new Order();
OrderCommand placeOrderCommand = new PlaceOrderCommand(order);
placeOrderCommand.execute();
}
}