import java.util.Observable;
import java.util.Observer;
public class ObserverTest {
/**
* @param args
*/
public static void main(String[] args) {
House house = new House(1000);
HousePriceObserver observer1 = new HousePriceObserver("zs");
HousePriceObserver observer2 = new HousePriceObserver("ls");
house.addObserver(observer1);
house.addObserver(observer2);
house.setPrice(600);
System.out.println(house);
}
}
class House extends Observable{
private float price;
public House(float price) {
this.price = price;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
super.setChanged();
super.notifyObservers(price);
this.price = price;
}
@Override
public String toString() {
return "房子的价格为:" + this.price;
}
}
class HousePriceObserver implements Observer{
private String name;
public HousePriceObserver(String name) {
this.name = name;
}
@Override
public void update(Observable o, Object arg) {
if(arg instanceof Float){
System.out.println(this.name + "观察到价格更改为" + arg);
System.out.println(o);
}
}
}
观察者模式例子
最新推荐文章于 2024-11-22 14:37:34 发布