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

    韶华易逝,不能虚度年华。
  • 相关阅读:
    c# IOSerialize 验证码、图片缩放
    SqlServer 分库分表
    权限系统数据库设计
    SqlServer 读写分离
    树转二叉树
    数据结构:图的存储结构之邻接矩阵、邻接表
    【数据结构】数据结构-图的基本概念
    哈夫曼树
    二叉树遍历方法
    Oracle 检查约束check
  • 原文地址:https://www.cnblogs.com/do-it-520/p/observer.html
Copyright © 2011-2022 走看看