zoukankan      html  css  js  c++  java
  • 观察者模式

    java.util提供了Observable和Observer 接口,使用它们即可完成观察者模式。需要被观察的类必须继承Observable类,Observable类的常用方法:

    public void addObserver(Observer o)
    public void deleteObserver(Observer o)
    protected void setChanged()     被观察者状态发生改变(设置变化点)
    public void notifyObserver(Object arg)     通知所有观察者状态发生改变
     
    每个观察者类都需要实现Observer接口
    public interface Observer {
         void update(Obervable o, Object arg);
    }
    

      

    此接口只定义了一个update方法,第1个参数表示被观察者实例,第二个参数表示修改的内容。
     
    class House extends Observable {
         public void setPrice(float price){
              super.setChanged();     //     设置变化点
              super.notifyObservers(price);     //通知所有观察者价格变化     
              this.price = price;
         }
    }
     
    class HouseObserver implements Observer {
         public void update (Observable obj, Object arg){
              if(arg instanceof Float) {
              System.out.println("价格变为" + ((Float) arg).floatValue());
              }
         }
    }
     
    public static void main(String args[]){
         House h = new House(10000);
         HousePriceObserver hp1 = new HousePriceObserver("购房者A");
         h.addObserver(hp1);
         h.setPrice(66666);
    }
    

      

  • 相关阅读:
    知多少进程?
    提高.NET应用性能
    战术设计DDD
    win7下exe文件设置为开机启动
    CQRS项目
    DDD总览
    ML.Net Model Builder
    MySQL主主复制搭建教程收集(待实践)
    MySQL主从复制搭建教程收集(待实践)
    MySQL集群方案收集
  • 原文地址:https://www.cnblogs.com/mywy/p/5230972.html
Copyright © 2011-2022 走看看