)
import java.util.Observable; import java.util.Observer; /** * 观察者模式JDK实现。 * author Bright Lee */ public class JdkObserverPattern { public static void main(String[] args) { AnimalKeeper subject new AnimalKeeper(); // 饲养员主题 Observer tiger new Tiger(); // 老虎 Observer bear new Bear(); // 狗熊 Observer fox new Fox(); // 狐狸 subject.addObserver(tiger); // 把老虎设为观察者 subject.addObserver(bear); // 把狗熊设为观察者 subject.addObserver(fox); // 把狐狸设为观察者 subject.setChanged(); subject.notifyObservers(快来吃饭); // 饲养员通知所有观察者 System.out.println(); subject.deleteObserver(bear); // 把狗熊从观察者名单中移除 subject.setChanged(); subject.notifyObservers(快来喝水); // 饲养员再次通知所有观察者 } } class AnimalKeeper extends Observable { public void setChanged() { super.setChanged(); } } class Tiger implements Observer { public void update(Observable o, Object msg) { System.out.println(老虎收到通知 msg); } } class Bear implements Observer { public void update(Observable o, Object msg) { System.out.println(狗熊收到通知 msg); } } class Fox implements Observer { public void update(Observable o, Object msg) { System.out.println(狐狸收到通知 msg); } }打印结果如下狐狸收到通知快来吃饭狗熊收到通知快来吃饭老虎收到通知快来吃饭狐狸收到通知快来喝水老虎收到通知快来喝水青蛙客服系统https://download.csdn.net/download/look4liming/93326820