这个模式主要是Observer和Observable
Observable是被观察事物,Observer是观察者。当观察者发现被观察者的一些属性发生变化,则会做出一些反映。
import java.util.Observable; import java.util.Observer; public class ObserveTest { public static void main(String args[]) { House h = new House(20.0f); Person p1 = new Person(); Person p2 = new Person(); Person p3 = new Person(); h.addObserver(p1); h.addObserver(p2); h.addObserver(p3); h.setPrice(30.0f); } } class House extends Observable { private double price; public House(double price) { super(); this.price = price; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; super.setChanged(); super.notifyObservers(); } } class Person implements Observer { @Override public void update(Observable o, Object arg) { System.out.println(o + "Hello" + arg); } }以上是一个实例,House是一个被观察事物,人是观察者,当房价发生变化时,人就会说“Hello”。
重要函数:
setChanged();标记为已经改变。
notifyObservers();告知观察者发生改变。
addObservers(o);加入观察者