你的位置:首页 > 软件开发 > Java > 观察者设计模式( Observable类Observer接口)

观察者设计模式( Observable类Observer接口)

发布时间:2017-04-18 00:00:29
如果要想实现观察者模式,则必须依靠Java.util包中提供的Observable类和Observer接口。class House extends Observable{ // 表示房子可以被观察 private floa ...

观察者设计模式( Observable类Observer接口)

观察者设计模式( Observable类Observer接口)

如果要想实现观察者模式,则必须依靠Java.util包中提供的Observable类和Observer接口

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 ;      }      public void update(Observable o,Object arg){          if(arg instanceof Float){              System.out.print(this.name + "观察到价格更改为:") ;              System.out.println(((Float)arg).floatValue()) ;          }      }  };  public class ObserDemo01{      public static void main(String args[]){          House h = new House(1000000) ;          HousePriceObserver hpo1 = new HousePriceObserver("购房者A") ;          HousePriceObserver hpo2 = new HousePriceObserver("购房者B") ;          HousePriceObserver hpo3 = new HousePriceObserver("购房者C") ;          h.addObserver(hpo1) ;          h.addObserver(hpo2) ;          h.addObserver(hpo3) ;          System.out.println(h) ; // 输出房子价格          h.setPrice(666666) ;    // 修改房子价格          System.out.println(h) ; // 输出房子价格      }  }; 

原标题:观察者设计模式( Observable类Observer接口)

关键词:设计模式

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。