//继承抽象类观察
public class House extends Observable {
public House(float price){
this.price=price;
}
@Override
public String toString() {
return "房子";
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
//可观察到的发生改变
this.price = price;
//可观察释放观察者进行价格观察,如果 hasChanged
方法指示对象已改变,则通知其所有观察者
}
}
//观察者继承观察者接口
public class Person implements Observer{
//自动重载父类方法
@Override
public void update(Observable o, Object arg) {
//o 可观察对象 arg 任意值
System.out.println(o+"***被观察者的操作有所更改"+arg);
}
}
//多名观察者观察价格变动
public class TestCbserver {
public static void main(String[] args) {
House h=new House(3000.0f);
Person per1=new Person();
Person per2=new Person();
Person per3=new Person();
//addObservert添加观察者 如果观察者与集合中已有的观察者不同,则向对象的观察者集中添加此观察者
h.addObserver(per2);
h.addObserver(per3);
h.setPrice(6000.0f);
}
}