命令模式代码举例(java语言版)
前言:命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。一般都会有三个角色:1、received 真正的命令执行对象 2、Command 3、invoker 使用命令对象的入口。这个设计模式是对操作方法的抽象。优点是对请求者"与"行为实现者"解耦
JAVA语言版命令模式
创建操作的抽象接口:
public interface Order { void execute(); }
创建执行命令对象:
public class Stock { private String name ="XXX股票"; private int quantity =100; public void buy(){ System.out.println("买进"+name+quantity+"股"); } public void sell(){ System.out.println("卖出"+name+quantity+"股"); } }
创建命令类:
public class BuyStock implements Order{ private Stock stock; public BuyStock(Stock stock) { this.stock = stock; } @Override public void execute() { stock.buy(); } } public class SellStock implements Order{ private Stock stock; public SellStock(Stock stock) { this.stock = stock; } @Override public void execute() { stock.sell(); } }
创建命令调用程序类:
public class Broker { private List<Order> orderList=new LinkedList<>(); public void takeOrder(Order order){ orderList.add(order); } public void placeOrder(){ for (Order order:orderList){ order.execute(); } orderList.clear(); } }
使用CommandPatternDemo演示命令模式:
public class CommandPatternDemo { public static void main(String[] args) { Stock stock=new Stock(); BuyStock buyStock =new BuyStock(stock); SellStock sellStock=new SellStock(stock); Broker broker =new Broker(); broker.takeOrder(buyStock); broker.takeOrder(sellStock); broker.placeOrder(); } }
输出结果:
买进XXX股票100股 卖出XXX股票100股
下一篇:
打印折痕(左神2020)