`
linsea
  • 浏览: 90519 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java内置观察者模式学习小实例

阅读更多
package desginpattern.obverser;

/* Demonstrate the Observable class and the
Observer interface.
NOTES:
 被观察者的设计:
  1.扩展Observable类.
  2.如果它已经改变,必须调用setChanged()方法.
  3.当它准备通知观察者时,必须调用notifyObserver(Object obj)或notifyObserver()方法,这将导致观察者的update()方法调用.
 观察者的设计:
  1.实现Observer接口.
  2.改写此接口的唯一方法: void update(Observable observOb, Object arg)
  3.参数observOb是被观察对象,arg是观察者传递过来的对象,此时可对它进行相应的处理.

*/

import java.util.*;

//This is the observing class.
class Watcher implements Observer {
 public void update(Observable obj, Object arg) {//改写此方法.
  System.out.println("update() called, count is "
    + ((Integer) arg).intValue()); //对传递进来的参数编程.
 }
}

//This is the class being observed.
class BeingWatched extends Observable {
 void counter(int period) {
  for (; period >= 0; period--) {
   setChanged();       //先调用此方法.
   notifyObservers(new Integer(period)); //再通知,否则一切无用.
   try {
    Thread.sleep(100);
   } catch (InterruptedException e) {
    System.out.println("Sleep interrupted");
   }
  }
 }

}

public class ObserverDemo {
 public static void main(String args[]) {
  BeingWatched observed = new BeingWatched();
  Watcher observing = new Watcher();

  /* Add the observing to the list of observers for
   observed object.  */
  observed.addObserver(observing); //把观察者(如果有多个)都添加进被观察者的订阅列表中.

  observed.counter(10);
 }
}

 

分享到:
评论

相关推荐

    java 设计模式 观察者模式 简单实例 包括测试test类

    在Java中,观察者模式的实现通常基于Java的内置接口`java.util.Observer`和`java.util.Observable`。下面将详细解释观察者模式的概念、结构以及如何在Java中应用这个模式。 **观察者模式的核心概念:** 1. **主题...

    java观察者模式实例

    在Java中,`java.util.Observable`和`java.util.Observer`接口提供了内置的支持来实现观察者模式。`Observable`类代表被观察的对象,而`Observer`接口则表示观察者。让我们详细解析这个实例: 1. **定义主题...

    java观察者模式观察者模式

    在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了对观察者模式的内置支持。`Observable`类代表被观察的对象,它可以有多个观察者,而`Observer`接口则定义了观察者的通用行为。 ### `...

    java内置的观察者模式demo

    将观察者添加到被观察者中,通常是被观察者实例化后立即进行。 ```java MyObservable observable = new MyObservable(); MyObserver observer = new MyObserver(); observable.addObserver(observer); ``` 4. ...

    运用MVC模式及观察者模式的java小程序

    在这个名为“运用MVC模式及观察者模式的java小程序”的项目中,我们重点探讨了两种经典的设计模式:Model-View-Controller(MVC)模式和Observer(观察者)模式。这两种模式在JavaWeb开发中扮演着至关重要的角色。 ...

    Java编程之内置观察者模式实例详解

    Java编程之内置观察者模式实例详解主要介绍了Java编程之内置观察者模式,结合实例形式较为详细的分析了java内置观察者模式的原理、实现方法及相关注意事项。 一、观察者模式的概念 观察者模式是一种行为型设计模式...

    设计模式--观察者模式java例子

    在Java中,观察者模式可以通过Java的内置接口`java.util.Observer`和`java.util.Observable`来实现。`Observer`接口代表观察者,而`Observable`类代表被观察的对象,也称为主题(Subject)。下面将详细介绍这两个...

    java观察者模式Demo

    观察者模式是软件设计模式中的一种行为...总的来说,"java观察者模式Demo"提供了一个使用Java标准库实现观察者模式的例子,这对于学习和理解设计模式是非常有帮助的,同时通过自定义实现还能进一步深入理解其工作原理。

    观察者模式实例代码

    在Java中,观察者模式可以通过Java内置的`java.util.Observable`类和`java.util.Observer`接口来实现。下面是一个简单的实例代码示例,详细注释将帮助理解观察者模式的工作原理: ```java // 定义主题(Subject),...

    观察者模式java实现观察者设计模式

    在Java中,我们可以利用Java提供的内置监听器机制来实现观察者模式,例如`ApplicationListener`和`ApplicationEvent`,这两个类主要用于Swing或JavaFX应用程序中的事件处理。 首先,我们来看`ApplicationListener`...

    java 观察者模式经典案例

    在Java中,观察者模式是通过Java的内置接口`java.util.Observer`和`java.util.Observable`来实现的。 在"java 观察者模式经典案例"中,我们以报社和读者为例来讲解这一模式。假设报社是被观察者(Observable),...

    观察者模式代码(JAVA)

    在Java中,`java.util.Observable` 和 `java.util.Observer` 类是内置的支持观察者模式的类。`Observable` 类代表被观察的对象,而`Observer`接口则表示观察者。下面我们将详细探讨这两个类以及如何使用它们来实现...

    java观察者模式demo----未使用java工具类

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Java中,标准的观察者模式实现是...

    java设计模式系列之观察者模式代码

    在Java编程领域,设计模式是一种被广泛采用的最佳实践,它为解决常见的软件设计问题提供...在Java中,`java.util.Observable`和`java.util.Observer`是内置的观察者模式实现,可以方便地用于快速构建观察者模式的系统。

    Java观察者模式

    在实际项目中,观察者模式常常与其他设计模式结合使用,如工厂模式来创建观察者实例,单例模式来管理观察者集合,以及策略模式来定义不同的通知策略。通过这种方式,可以构建出更加灵活、可维护的系统架构。

    观察者模式最佳实践

    同样,实现主题接口,通常包含一个内部列表来存储观察者实例。 3. **注册观察者**:在程序运行时,观察者通过调用主题的`addObserver()`方法进行注册,表示它们希望接收状态变更的通知。 4. **通知机制**:当主题...

    观察者模式简单demo

    在Java中,观察者模式通常通过Java内置的`java.util.Observable`类和`java.util.Observer`接口来实现。`Observable`类代表被观察的对象,`Observer`接口则是观察者的接口。下面我们将详细讨论如何在Java中实现一个...

    JAVA学习实例15个

    14. **设计模式**:可能包含一些常见的设计模式,如单例、工厂、观察者、装饰器模式等,这些都是提高代码可复用性和可维护性的关键。 15. **数据库操作**:通过JDBC连接数据库,执行SQL查询,处理结果集等,了解...

    Java中的观察者模式实例讲解

    在Java中,观察者模式通常通过`java.util.Observable`和`java.util.Observer`接口来实现。然而,由于这些内置实现的局限性(如Java类无法多重继承),在实际应用中,开发者通常会自定义类来更好地适应特定场景的需求...

    观察者模式(Observer)

    在实际开发中,很多框架和库也内置了观察者模式,如JavaScript中的EventEmitter(Node.js)、C#的事件和委托,以及Android中的BroadcastReceiver等。这些工具使得开发者可以更便捷地应用观察者模式,提高代码的可...

Global site tag (gtag.js) - Google Analytics