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

    1.发布者

    import java.util.Observable;
    
    public class Fabuzhe extends Observable {
        //布置作业的状态信息字符串
        private String info;
        public void setHomework(String info) {
    
            this.info=info;
            System.out.println("布置的作业是"+info);
    
            setChanged();
            notifyObservers();
        }
        public String getInfo() {
            return info;
        }
    }
    

    2.订阅者

    public class Dingyuezhe implements Observer {
        private Observable ob;
        private String name;
    
        public Dingyuezhe(String name,Observable ob) {
            this.ob = ob;
            this.name=name;
            ob.addObserver(this);
        }
    
        @Override
        public void update(Observable o, Object arg) {
            Fabuzhe fabuzhe= (Fabuzhe) o;
            String s=fabuzhe.getInfo();
            System.out.println(name+"得到作业信息:"+s);
        }
    }
    

      3.运行代码事例

    public class ObserverableTest {
        public static void main(String[] args) {
            Fabuzhe fabuzhe=new Fabuzhe();
            Dingyuezhe dingyuezhe=new Dingyuezhe("张三",fabuzhe);
            Dingyuezhe dingyuezhe2=new Dingyuezhe("李四",fabuzhe);
            fabuzhe.setHomework("数学第五页第八题");
            fabuzhe.setHomework("语文第一页背诵课文");
    
        }
    }
    

      

    运行结果如下:
    
    
    布置的作业是数学第五页第八题
    李四得到作业信息:数学第五页第八题
    张三得到作业信息:数学第五页第八题
    布置的作业是语文第一页背诵课文
    李四得到作业信息:语文第一页背诵课文
    张三得到作业信息:语文第一页背诵课文
    

      

  • 相关阅读:
    机器学习---聚类算法
    机器学习解决问题的框架
    17个机器学习的常用算法!
    机器学习---理论篇
    golang 调用cmd执行EXE
    队列(自定义列表实现自定义队列)
    栈Stack(使用自定义链表实现自定义栈)
    链表( 自定义链表)
    队列(动态数组实现自定义队列)
    栈Stack(动态数组实现自定义栈)
  • 原文地址:https://www.cnblogs.com/anxbb/p/9849912.html
Copyright © 2011-2022 走看看