设计形式之二:观察者模式
定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,在它的状态发生变化时,会通知所有的观察者;
1.
package cn.google.design.observed.two;
import java.util.Observable;
//实现被观察者
public class House extends Observable{
public int price;
public House(int price){
this.price = price;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
super.setChanged(); //通知内容已可以改变
this.price = price;
super.notifyObservers(price);
}
@Override
public String toString() {
return "Price:" + this.price;
}
}
2.
package cn.google.design.observed.two;
import java.util.Observable;
import java.util.Observer;
//实现一个观察者
public class Person implements Observer{
@Override
public void update(Observable arg0, Object arg1) {
System.out.println("观察者:" + arg1.toString());
}
}
3.
package cn.google.design.observed.two;
//测试
public class TestObserved {
public static void main(String[] args) {
//创建一个被观察者
House house = new House(1000);
Person p1 = new Person();
house.addObserver(p1);
house.setPrice(500000);
}
}