zoukankan      html  css  js  c++  java
  • 设计模式

    观察者模式:定义了对象间一对多的依赖关系,这样一来当一个对象的状态改变时,他的所有依赖都会自动收到通知并自动更新。

    java中内置的观察者模式:

    Observable类

    java.util.Observable

      http://docs.oracle.com/javase/7/docs/api/java/util/Observable.html

    Observable类用于创建可以观测到你的程序中其他部分的子类。当这种子类的对象发生变化时,观测类被通知。

      观测类必须实现定义了update()方法的Observer接口。

     当一个观测程序被通知到一个被观测对象的改变时,update()方法被调用。

      显然,Observable是一个抽象的主题对象。

      一个被观测的对象必须服从下面的两个简单规则:

      第一,如果它被改变了,它必须调用setChanged()方法。

      第二,当它准备通知观测程序它的改变时,它必须调用notifyObservers()方法,这导致了在观测对象中对update()方法的调用。

      注意:如果在调用notifyObservers()方法之前没有调用setChanged()方法,就不会有什么动作发生。

      notifyObservers()方法中包含clearChanged()方法,将标志变量置回原值。

      notifyObservers()方法采用的是从后向前的遍历方式,即最后加入的观察者最先被调用update()方法。

    Observer接口

      java.util.Observer

      http://docs.oracle.com/javase/7/docs/api/java/util/Observer.html

      此接口中只有一个方法:

    void update(Observable o, Object arg)

      这个方法在被观察对象(Observable类)的notifyObservers()方法中被调用。

    观察者模式及Java实现例子:

      http://www.cnblogs.com/mengdd/archive/2013/02/07/2908929.html

  • 相关阅读:
    C++异常第二篇---C++标准库异常类exception的使用
    C++异常(exception)第一篇--综合讲解
    libconfig第二篇----两个小例子
    libconfig第一篇———使用指南
    log4cxx第三篇----使用多个logger
    kafka第五篇
    kafka第四篇--快速入门(如何使用kafka)
    UVA 455(最小周期)
    UVA1584(环状序列)
    UVA1583(最小生成元)
  • 原文地址:https://www.cnblogs.com/cathyqq/p/5248414.html
Copyright © 2011-2022 走看看