observer 的备忘(二)--JDK
被观察者 继承 Observerable 类
在方法中 this.setChanged() ;this.notifyObservers()
观察者 实现 Observer接口
重写update方法来实现对观察者的回应
在被观察者出现多继承的情况时 考虑有adapter的方式实现
package com.cht.observer;import java.util.Observable;import java.util.Observer;public class MouseCatMan { public static void main (String [] args){ Cat c = new Cat(); Observer o1 = new Mouse(); Observer o2 = new Man(); c.addObserver(o1); Mouse m = (Mouse)o1; m.addObserver(o2); //非常关键的一部 调用c中的方法开始触发 c.cry(); }}class Cat extends Observable{public void cry(){System.out.println("the cat cry");this.setChanged();this.notifyObservers();}}class Mouse extends Observable implements Observer {@Overridepublic void update(Observable o, Object arg) { System.out.println("the cat cry ! mouse run!!"); this.setChanged(); this.notifyObservers();}}class Man implements Observer{@Overridepublic void update(Observable o, Object arg) { System.out.println("Scared me!!");}}