观察者模式例子

来源:互联网 发布:eps数据平台导出表格 编辑:程序博客网 时间:2024/05/22 11:09
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;}@Overridepublic String toString() {return "房子的价格为:" + this.price;}}class HousePriceObserver implements Observer{private String name;public HousePriceObserver(String name) {this.name = name;}@Overridepublic void update(Observable o, Object arg) {if(arg instanceof Float){System.out.println(this.name + "观察到价格更改为" + arg);System.out.println(o);}}}