zoukankan      html  css  js  c++  java
  • 观察者设计模式总结

    1.观察者(observer)--订阅者

    update 

    /**
     * 观察者
     * */
    public class Coder implements Observer{
        
        private String name;
        public Coder(String name){
            this.name=name;
            print("订阅者名字--"+this.name);
        }

    2.被观察者(observable)--发布者

     必要条件: 设置状态发生变化,然后根据变化进行通知notify

    /**
     * 
     * 被观察者
     * **/
    public class TechCto extends Observable{
        
        public void publishContent(String content){
            setChanged();//设置状态发生
            this.notifyObservers(content);//调用自身的通知
        }
        
    
    }

    主函数:

    public static void main(String[] args) {
            System.out.println("测试设计模式------------------------------------");
            //被观察者(发布者)
            TechCto cto =new TechCto();
            //观察者(订阅者)
            Coder coder1=new Coder("feifei");
            Coder coder2=new Coder("huahua");
            //订阅者注册到发布者上面
            cto.addObserver(coder2);
            cto.addObserver(coder1);
            //发布信息
            cto.publishContent("yumenle");
        }

    测试结果:

    测试设计模式------------------------------------
    订阅者名字--feifei
    订阅者名字--huahua
    feifei   yumenle   更新成功
    huahua   yumenle   更新成功
  • 相关阅读:
    51nod1278 相离的圆
    CodeForces
    SPOJ
    51nod 1040(欧拉函数)
    51nod1009 51nod1042(数位dp)
    51nod1264 线段相交
    51nod1050 循环数组最大子段和
    Spark SQL UDF示例
    Spark SQL官网阅读笔记
    Spark RDD
  • 原文地址:https://www.cnblogs.com/zhengtu2015/p/7821522.html
Copyright © 2011-2022 走看看