观察者模式:对象间存在一对多关系,当一个对象被修改时,自动通知其他的依赖对象
public class ObserverPattern {
public static void main(String[] args) {
Subject subject = new Subject();
Task1 task1 = new Task1();
subject.addObserver(task1);
Task2 task2 = new Task2();
subject.addObserver(task2);
subject.notifyObserver("aaaa");
subject.remove(task1);
subject.notifyObserver("cccccc");
}
}
class Subject {
// 容器
private List<Observer> container = new ArrayList<>();
public void addObserver(Observer observer) {
container.add(observer);
}
public void remove(Observer observer) {
container.remove(observer);
}
public void notifyObserver(Object object) {
for (Observer item : container) {
item.update(object);
}
}
}
interface Observer {
void update(Object object);
}
class Task1 implements Observer {
@Override
public void update(Object object) {
System.out.println(" task1 : " + object);
}
}
class Task2 implements Observer {
@Override
public void update(Object object) {
System.out.println(" task2 :" + object);
}
}