观察者模式

来源:互联网 发布:网络销售招聘可靠吗 编辑:程序博客网 时间:2024/06/03 22:51



观察者是Observer,
房子是可被观察的Observable ;
在java.util包中提供了Observable类和Observer接口。
package org.lxh.ObserDemo;
/**
 * 观察者模式
 * */
public class TestObserver{
public static void main(String args[]){
House h = new House(3300.0f);
Person per1 = new Person() ;
Person per2 =  new Person() ;
Person per3 = new Person() ;
h.addObserver(per1) ;
h.addObserver(per2) ;
h.addObserver(per3) ;
h.setPrice(6000) ;
}

}
============
package org.lxh.ObserDemo;


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


public class Person implements Observer {
public void update(Observable arg0, Object arg1) {
System.out.println("*******被观察的操作有所更改**********");
}
}
========
package org.lxh.ObserDemo;
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(); //通知所有的观察者 ,
}
}