观察者模式
public class ObserverMode {
public static void main(String[] args) {
Subject subject = new Subject();
Task1 task1 = new Task1();
subject.add(task1);
subject.add(new Task2());
subject.notifyObserver("xx");
System.out.println("----------");
subject.remove(task1);
subject.notifyObserver("yyy");
}
}
class Subject {
private List<Observer> container = new ArrayList<>();
public void add(Observer observer) {
container.add(observer);
}
public void remove(Observer observer) {
container.remove(observer);
}
public void notifyObserver(Object obj) {
for (Observer observer : container) {
observer.update(obj);
}
}
}
interface Observer {
void update(Object obj);
}
class Task1 implements Observer {
@Override
public void update(Object obj) {
System.out.println("111收到:" + obj);
}
}
class Task2 implements Observer {
@Override
public void update(Object obj) {
System.out.println("222收到:" + obj);
}
}