zoukankan      html  css  js  c++  java
  • 警报观察

    Observer

    Observer接口

    public interface Observer {
        //通知
        void notice();
        String  getName();
    }
    

    Alarm

    public class Alarm {
        List<Observer> observers = new ArrayList<>();
    
        public void addObserver(Observer o){
            observers.add(o);
        }
    
        public void removeObserver(Observer o){
            observers.remove(o);
        }
    
        public void notice(){
            for (Observer observer:this.observers){
                observer.notice();
            }
        }
    }
    

    Fighter

    public class Fighter implements Observer{
        private String name;
    
        public Fighter() {
        }
    
        public Fighter(String name) {
            this.name = name;
        }
    
        @Override
        public void notice() {
            System.out.println(name+"士兵向城外集合...");
        }
    
        @Override
        public String getName() {
            return this.name;
        }
    }
    

    Worker

    public class Worker implements Observer{
        private String name;
    
        public Worker() {
        }
    
        public Worker(String name) {
            this.name = name;
        }
    
        @Override
        public void notice() {
            System.out.println(name+"工人向城内集合...");
        }
    
        @Override
        public String getName() {
            return this.name;
        }
    }
    

    Main

    public class Main {
        public static void main(String[] args) {
            Alarm alarm = new Alarm();
            Fighter f1 = new Fighter("peter");
            Fighter f2 = new Fighter("gus");
            Worker w1 = new Worker("al");
            Worker w2 = new Worker("patrick");
    
            alarm.addObserver(f1);
            alarm.addObserver(f2);
            alarm.addObserver(w1);
            alarm.addObserver(w2);
    
            alarm.notice();
        }
    }
    

    本文来自博客园,作者:CLAY——MRX,转载请注明原文链接:https://www.cnblogs.com/do-it-520/p/observer.html

    韶华易逝,不能虚度年华。
  • 相关阅读:
    OpenCL 获取Program信息
    匈牙利算法
    经常使用的webservice接口
    庞果网之高斯公式
    T4 生成实体和简单的CRUD操作
    zTree实现地市县三级级联报错(三)
    AlphaBlend
    cocos2d-x 3.0 事件处理
    rman多通道全备份脚本
    Linux下的简单好用的计算器bc
  • 原文地址:https://www.cnblogs.com/do-it-520/p/observer.html
Copyright © 2011-2022 走看看