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

    韶华易逝,不能虚度年华。
  • 相关阅读:
    VUE单页模板
    Nacos(作为配置中心)
    OpenFeign与Nacos(作为注册中心) 远程调用
    Nacos 服务注册
    Docker 安装Redis
    Docker安装Mysql
    多线程之CAS和ABA
    Volatile
    JAVA语言的特点
    判断多选按钮被选中两种方法
  • 原文地址:https://www.cnblogs.com/do-it-520/p/observer.html
Copyright © 2011-2022 走看看