class HouseObserver implements Observer{ private String name; //观察者的名字 public HouseObserver(String name) { super(); this.name = name; }
@Override public void update(Observable o, Object arg) { // TODO 自动生成的方法存根 if(arg instanceof Float){ //判断参数类型 System.out.println(this.name+"观察到价格改变为"); System.out.println(((Float)arg).floatValue()); } } }
public class Observer_demo {
public static void main(String[] args) { // TODO 自动生成的方法存根 House h = new House(1000000); HouseObserver ho1 = new HouseObserver("购房者1"); HouseObserver ho2 = new HouseObserver("购房者2"); HouseObserver ho3 = new HouseObserver("购房者3"); h.addObserver(ho1); //加入观察者 h.addObserver(ho2); h.addObserver(ho3); System.out.println(h); //输出房子的价格 h.setPrice(666); //修改房子的价格 System.out.println(h); //输出房子的价格 }