zoukankan      html  css  js  c++  java
  • 观察者模式

    
    
    /**
     * 油箱油量小于等于定义的报警油量则报警
     */
    public class ObserveDemo {
      static class Car extends Observable {
        private Integer oil = new Integer(0);
    
    
        public void addOil(Integer oil) {
          this.oil += oil;
        }
    
        public void run() throws InterruptedException {
          System.out.println("汽车启动");
          while (this.oil > 0) {
            oil--;
            Thread.sleep(1000);
            if (oil <= 5) {
              setChanged();
              notifyObservers(oil);
            }
          }
          if(this.oil == 0){
            stop();
          }
        }
    
        public void stop() {
          System.out.println(toString() + "停止");
        }
    
        public String toString() {
          return "你的汽车";
        }
      }
    
      static class OilBoxObserver implements Observer {
    
        @Override
        public void update(Observable o, Object arg) {
          System.out.println(o.toString() + "该加油啦,油还剩" + (Integer) arg);
        }
      }
    
      public static void main(String[] args) throws InterruptedException {
        Car accord = new Car();
        accord.addObserver(new OilBoxObserver());
        accord.addOil(6);
        accord.run();
      }
    }
    汽车启动
    你的汽车该加油啦,油还剩5 你的汽车该加油啦,油还剩4 你的汽车该加油啦,油还剩3 你的汽车该加油啦,油还剩2 你的汽车该加油啦,油还剩1 你的汽车该加油啦,油还剩0 你的汽车停止
  • 相关阅读:
    Reborn
    个人总结
    第十六周个人进度条
    梦断代码阅读笔记03
    第十五周个人进度条
    第十四周个人进度条
    第十三周个人进度条
    冲刺9
    冲刺8
    事后诸葛亮会议
  • 原文地址:https://www.cnblogs.com/sstone/p/8474151.html
Copyright © 2011-2022 走看看