您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第11章:Java常用类库】_观察者设计模式
发布时间:2020-12-25 18:23:19编辑:雪饮阅读()
观察者设计模式由Observable类提供被观察对象(观测站)、由Observer接口提供观察者个体
具体实现如:
import java.util.* ;
//被观察对象
class House extends Observable{
private float price;
public House(float price){
this.price=price;
}
public float getPrice(){
return this.price;
}
public void setPrice(float price){
super.setChanged() ;
super.notifyObservers(price);
this.price=price;
}
public String toString(){
return "房子当前价格为:"+this.price;
}
}
//观察者
class HousePriceObserver implements Observer{
private String name;
public HousePriceObserver(String name){
this.name=name;
}
//覆写Observer的update,用于接收被观察对象属性变动后的通知进行相关处理
public void update(Observable o,Object arg){
System.out.println(this.name+":观察到房子价格变到"+arg);
}
}
public class Hello{
public static void main(String args[]) throws Exception{
//观测站
House h=new House(100.12f);
//观察者们
HousePriceObserver kasumi=new HousePriceObserver("kasumi");
HousePriceObserver ayani=new HousePriceObserver("ayani");
HousePriceObserver hayabusa=new HousePriceObserver("hayabusa");
HousePriceObserver delightful=new HousePriceObserver("delightful");
HousePriceObserver snowDrink=new HousePriceObserver("snowDrink");
//允许这些观察者观察
h.addObserver(kasumi);
h.addObserver(ayani);
h.addObserver(hayabusa);
h.addObserver(delightful);
h.addObserver(snowDrink);
h.setPrice(25.13f);
}
};
关键字词:java,观察者
相关文章
- 【第11章:Java常用类库】_比较器(Comparable、Comparato
- 【第11章:Java常用类库】_Arrays
- 【第11章:Java常用类库】_对象克隆技术
- 【第11章:Java常用类库】_大数操作(BigIntger、BigDecim
- 【第11章:Java常用类库】_NumberFormat
- 【第11章:Java常用类库】_Math与Random类
- 〖第11章:Java常用类库〗_实例操作:取得当前日期
- 【第11章:Java常用类库】_日期操作类(DateFormat、Simpl
- 【第11章:Java常用类库】_日期操作类(Date、Calendar)
- 【第11章:Java常用类库】_System类