import java.util.Observable;
import java.util.Observer;
class House extends Observable{
private float price = 6000;
public float getPrice() {
return price;
}
public void setPrice(float price) {
super.setChanged(); //设置变化点
super.notifyObservers(price); //通知所有观察者价格改变
this.price = price;
}
}
class HouserPriceObserver implements Observer{
private String name;
public HouserPriceObserver(String name) {
this.name = name;
}
@Override
public void update(Observable o, Object arg) {
if(arg instanceof Float){
System.out.println(name + "观察到房价变化为:" + (Float)arg);
}
}
}
public class Teest{
public static void main(String[] args) {
House h = new House();
HouserPriceObserver ho1 = new HouserPriceObserver("购房者A");
HouserPriceObserver ho2 = new HouserPriceObserver("购房者B");
h.addObserver(ho1); //加入观察者
h.addObserver(ho2); //加入观察者
System.out.println("原房价:" + h.getPrice());
h.setPrice(1000);
System.out.println("变化后:" + h.getPrice());
}
}结果: