您的位置:首页 > 编程语言 > Java开发

java: 观察者模式:Observable被观察者,Observer观察者

2017-06-14 08:27 549 查看
java: 观察者模式:Observable被观察者,Observer观察者

以房子价格为例,卖房者为被观察者:

import java.util.Observable;

//被观察者子类化
public 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();
//一旦价格修改成功,那么应该通知观察者
this.price = price;
//通知所有观察者
super.notifyObservers(price);
}

public String toString()
{
return "房子";
}

}


  

买房者为观察者:

import java.util.Observable;
import java.util.Observer;

//实现观察者接口
public class Person implements Observer {

@Override
public void update(Observable o, Object arg) {
// TODO 自动生成的方法存根

//当被观察者发生变化,观察者立马能接受都信息
System.out.println( o + " ****** 房子的价格已经发生改变" + arg);

}

}


  

实例被观察者,与观察者:

public class ObserverDemo {

public static void main(String[] args) {
// TODO 自动生成的方法存根

//实例化被观察者
House h = new House(3000.00f);

//实例化观察者
Person p1 = new Person();
Person p2 = new Person();
Person p3 = new Person();

//增加观察者
h.addObserver(p1);
//增加观察者
h.addObserver(p2);
//增加观察者
h.addObserver(p3);

//被观察者价格发生改变
h.setPrice(4000.00f);

}

}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: