设计形式之二:观察者模式

设计模式之二:观察者模式

定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,在它的状态发生变化时,会通知所有的观察者;

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);
}

}