观察者设计模式
监听目标对象改变状态
关键词: 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做分布式锁
2.系统b尝试获取锁,被a锁了,b在zookeeper注册监听器,一旦a释放了送,通知b,b尝试重新上锁。
---------------------------------------------------------------------------
国之殇,未敢忘!
南京大屠杀!
731部队!
以及核污染水排海等一系列全无人性的操作,购买他们的食品和为它们提供帮助只会更加变本加厉的害你,呼吁大家不要购买日本相关产品
昭昭前事,惕惕后人
吾辈当自强,方使国不受他人之侮!
---------------------------------------------------------------------------
作者:三号小玩家
出处:https://www.cnblogs.com/q1359720840/
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 版权信息