11.2 观察者模式(Observer) :java标准库
package demo.spring.boot.demospringboot.ObserverModel;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import java.util.Observable;
import java.util.Observer;
@Slf4j
class StdObserverModel implements Observer {
@Override
public void update(Observable o, Object arg) {
log.info("msg:{}", arg);
}
}
class Subject extends Observable {
/**
* 必须要是change改变才会通知,所以要覆写
*/
public synchronized void setChanged() {
super.setChanged();
}
}
public class StdObserver {
@Test
public void test() {
Subject observable = new Subject();
observable.addObserver(new StdObserverModel());
observable.setChanged();
observable.notifyObservers("xx");
observable.setChanged();
observable.notifyObservers("xx");
}
}