观察者模式

来源:互联网 发布:使用sql来commit work 编辑:程序博客网 时间:2024/06/05 20:28

这个模式主要是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 {@Overridepublic void update(Observable o, Object arg) {System.out.println(o + "Hello" + arg);}}

以上是一个实例,House是一个被观察事物,人是观察者,当房价发生变化时,人就会说“Hello”。

重要函数:

setChanged();标记为已经改变。

notifyObservers();告知观察者发生改变。

addObservers(o);加入观察者


 

 

原创粉丝点击