了解观察者设计模式的作用
掌握Observable类Observer接口使用
如果要是先观察者模式 必须继承接口
package KownClass;
import java.util.*;
class House extends Observable { // 表示房子可以被观察
private float price;// 价钱
public House(float price) {
this.price = price;
}
public float getPrice() {
return this.price;
}
public void setPrice(float price) {
// 每一次修改的时候都应该引起观察者的注意
super.setChanged(); // 设置变化点
super.notifyObservers(price);// 价格被改变
this.price = price;
}
public String toString() {
return "房子价格为:" + this.price;
}
};
class HousePriceObserver implements Observer {
private String name;
public HousePriceObserver(String name) { // 设置每一个购房者的名字
this.name = name;
}
public void update(Observable o, Object arg) {
if (arg instanceof Float) {
System.out.print(this.name + "观察到价格更改为:");
System.out.println(((Float) arg).floatValue());
}
}
};
public class DateDemo02 {
public static void main(String args[]) {
House h = new House(1000000);
HousePriceObserver hpo1 = new HousePriceObserver("购房者A");
HousePriceObserver hpo2 = new HousePriceObserver("购房者B");
HousePriceObserver hpo3 = new HousePriceObserver("购房者C");
h.addObserver(hpo1);
h.addObserver(hpo2);
h.addObserver(hpo3);
System.out.println(h); // 输出房子价格
h.setPrice(666666); // 修改房子价格
System.out.println(h); // 输出房子价格
}
};