【Design Patterns】命令模式

来源:互联网 发布:网络卫视直播下载 编辑:程序博客网 时间:2024/05/21 17:21


//抽象出 orderpublic interface Order{  void execute();}//定义类,封装执行方法public class Stock{private String name= "ABC";privare int quantity = 10;public void buy(){  System.out.println("Stock[Name:" + name + ", Quantity:" + quantity+ "] bought");}public void sell(){  System.out.println("Stock[Name :" + name +",Quantity:" + quantity + "] sold");}}//具体化命令,调用类的命令方法public class BuyStock implements Order{  private Stock abcStock;   public BuyStock(Stock abcStock){    this.abcStock = abcStock;  }   public void execute(){    abcStock.buy();   }}public class SellStock implements Order{  private Stock abcStock;  public SellStock(Stock abcStock){   this. abcStock = abcStock;  }  public void execute() {    abcStock.sell(); }}//定义类,触发命令调用public class Broker{ private List<Order>  orderList = new ArrrayList<Order>();  public void takeOrder(Order order){     orderList.add(order);  }  public void placeOrders(){   for(Order ordr : orderList){    order.execute();   }    orderList.clear(); }}//Client Codepublic class CommandPatternDemo{  public static void main(String[] args){   Stock abcStock = new Stock();   BuyStock buyStockOrder = new BuyStock(abcStock);   SellStock sellStockOrder = new SellStock(abcStock);   Broker broker = new Broker();    broker.takeOrder(buyStockOrder);    broker.takeOrder(sellStockOrder);    broker.placeOrders(); }}


0 0