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

    观察者设计模式

    监听目标对象改变状态

    关键词: Observable 和 Observer

     package com.player3.java.observer;
     import java.util.Observable;
     /**
      * 观察者类
      */
     public class Subject extends Observable
     {
         private  Integer state;
         public Subject(int i) {
             this.state=i;
        }
         public Integer getState() {
             return state;
        }
         public void setState(Integer state) {
             this.state = state;
             //状态改变
             this.setChanged();
             //推送
             this.notifyObservers(state);
           //拉取
            // this.notifyObservers();
        }
     }
     
     package com.player3.java.observer;
     import java.util.Observable;
     import java.util.Observer;
     public class ConcreteObserver  implements Observer {
         public static void main(String[] args) {
             Subject subject = new Subject(0);
             ConcreteObserver concreteObserver = new ConcreteObserver();
             subject.addObserver(concreteObserver);
             subject.setState(1);
             subject.setState(2);
        }
         /**
          * 更新会调用这个方法
          * @param o 更新的对象
          * @param arg 更新的字段
          */
         public void update(Observable o, Object arg) {
          Subject su=   (Subject)o;
             Integer state1 = su.getState();
             Integer state=(Integer)arg;
             System.out.println(state);
        }
     }

    基于 zookeeper做分布式锁

    1.系统a尝试获取zookeeper上的一个锁,获取到了。

    2.系统b尝试获取锁,被a锁了,b在zookeeper注册监听器,一旦a释放了送,通知b,b尝试重新上锁。

     

     

  • 相关阅读:
    用java实现的微信公众号爬虫
    装饰模式
    输入一个数,查询该数是否为素数
    Machine-learning-DecisionTree
    Circles of Waiting
    GRE阅读
    云数据库POLARDB产品解读之二:如何做到高性价比
    奉上一份云上数据安全保护指南
    从双十一看阿里云安全的“创世纪”——采访阿里云安全掌门人肖力有感
    阿里云移动研发平台EMAS,是如何连续5年安全护航双11的?
  • 原文地址:https://www.cnblogs.com/q1359720840/p/14766414.html
Copyright © 2011-2022 走看看