定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都得到通知并被自动更新
这里写图片描述
实际上是subject中有一个observer的bean序列,当subject更新时,调用该序列中所有的observer的更新,即实现观察者模式
代码
Main
public class Main {
public static void main(String[] args) {
SubjectImp mySubject=new SubjectImp();
mySubject.setObserver(new Observer01());
mySubject.setObserver(new Observer02());
mySubject.setObserver(new Observer03());
mySubject.update();
}
}
interface:Observer
public interface Observer {
public void update();
}
abs:Subject
public abstract class Subject {
List<Observer> observer=new ArrayList<Observer>();
public boolean setObserver(Observer o){
try{
observer.add(o);
}catch(Exception e){
System.out.println(e);
return false;
}
return true;
}
public boolean delObserver(Observer o){
try{
observer.remove(o);
}catch(Exception e){
System.out.println(e);
return false;
}
return true;
}
public void Notify(){
for(int i=0;i<observer.size();i++){
observer.get(i).update();
}
}
}
imp:SubjectImp
public class SubjectImp extends Subject {
public void update(){
System.out.println("========subject is update===========");
Notify();
}
}
imp:Observer01
public class Observer01 implements Observer {
@Override
public void update() {
System.out.println("observer update 01");
}
}
imp:Observer02
public class Observer02 implements Observer {
@Override
public void update() {
System.out.println("observer update 02");
}
}
imp:Observer03
public class Observer03 implements Observer {
@Override
public void update() {
System.out.println("observer update 03");
}
}