定义:
就是定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并自动更新。
创建动作
public interface Observer {
void update(String content);
}
新建两个观察者 老师 学生
public class Teacher implements Observer {
@Override
public void update(String content) {
System.out.println("老师收到了" + content + "通知");
}
}
public class Student implements Observer {
@Override
public void update(String content) {
System.out.println("学生收到了" + content + "通知");
}
}
订阅者
public interface Subject {
//添加观察者
void add(Observer observer);
//删除观察者
void del(Observer observer);
//通知所有观察者
void notifyObservers(String content);
}
public class SubjectObserver implements Subject {
private final Vector<Observer> mVector = new Vector<>();
@Override
public void add(Observer observer) {
mVector.add(observer);
}
@Override
public void del(Observer observer) {
mVector.remove(observer);
}
@Override
public void notifyObservers(String content) {
for (Observer observer : mVector) {
observer.update(content);
}
}
}
好了 创建完了 下面开始使用
public static void main(String[] args) {
Subject subject = new SubjectObserver();
subject.add(new Teacher());
subject.add(new Student());
subject.notifyObservers("放假");
}
创建订阅者 添加观察者 通知所有观察者