zoukankan      html  css  js  c++  java
  • 命令模式

    1.命令模式
    命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象
    寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。

    2.试验Demo

    import java.util.List;
    import java.util.ArrayList;
    
    class Stock {
        public void buy() {
            System.out.println("buy 10 stocks");
        }
    
        public void sell() {
            System.out.println("shell 10 stocks");
        }
    }
    
    
    interface Order {
        public void excuate();
    }
    
    class ByStocks implements Order {
        private Stock stock;
        public ByStocks(Stock stock) {
            this.stock = stock;
        }
        public void excuate() {
            stock.buy();
        }
    }
    
    
    class ShellStocks implements Order {
        private Stock stock;
        public ShellStocks(Stock stock) {
            this.stock = stock;
        }
        public void excuate() {
            stock.sell();
        }
    }
    
    class Broker {
        private static List<Order> lists = new ArrayList<Order>();
    
        public static void orderStore(Order order) {
            lists.add(order);
        }
    
        public static void orderExecute() {
            for (Order list : lists) {
                list.excuate();
            }
            lists.clear();
        }
    
    }
    
    
    public class CommandPatternDemo {
        public static void main(String args[]) {
            Stock stock = new Stock();
    
            Order buyStock = new ByStocks(stock);
            Order shellStock = new ShellStocks(stock);
    
            Broker.orderStore(buyStock);
            Broker.orderStore(shellStock);
    
            Broker.orderExecute();
        }
    }

    参考:http://www.runoob.com/design-pattern/command-pattern.html

  • 相关阅读:
    error while loading shared libraries: libhwloc.so.5: cannot open shared object file: No such file or directory
    Mac刷新DNS,修改/etc/hosts立即生效
    zxing生成识别二维码
    电脑M2接口不是磁盘0问题
    WSL
    Ubuntu安装Docker
    Win10关闭自动更新和防护
    Mysql的5种日志
    开发常用工具Windows
    log4j2高危漏洞
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/10721000.html
Copyright © 2011-2022 走看看