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中,观察者模式的实现通常基于Java的内置接口`java.util.Observer`和`java.util.Observable`。下面将详细解释观察者模式的概念、结构以及如何在Java中应用这个模式。 **观察者模式的核心概念:** 1. **主题...
在Java中,`java.util.Observable`和`java.util.Observer`接口提供了内置的支持来实现观察者模式。`Observable`类代表被观察的对象,而`Observer`接口则表示观察者。让我们详细解析这个实例: 1. **定义主题...
在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了对观察者模式的内置支持。`Observable`类代表被观察的对象,它可以有多个观察者,而`Observer`接口则定义了观察者的通用行为。 ### `...
将观察者添加到被观察者中,通常是被观察者实例化后立即进行。 ```java MyObservable observable = new MyObservable(); MyObserver observer = new MyObserver(); observable.addObserver(observer); ``` 4. ...
在这个名为“运用MVC模式及观察者模式的java小程序”的项目中,我们重点探讨了两种经典的设计模式:Model-View-Controller(MVC)模式和Observer(观察者)模式。这两种模式在JavaWeb开发中扮演着至关重要的角色。 ...
Java编程之内置观察者模式实例详解主要介绍了Java编程之内置观察者模式,结合实例形式较为详细的分析了java内置观察者模式的原理、实现方法及相关注意事项。 一、观察者模式的概念 观察者模式是一种行为型设计模式...
在Java中,观察者模式可以通过Java的内置接口`java.util.Observer`和`java.util.Observable`来实现。`Observer`接口代表观察者,而`Observable`类代表被观察的对象,也称为主题(Subject)。下面将详细介绍这两个...
观察者模式是软件设计模式中的一种行为...总的来说,"java观察者模式Demo"提供了一个使用Java标准库实现观察者模式的例子,这对于学习和理解设计模式是非常有帮助的,同时通过自定义实现还能进一步深入理解其工作原理。
在Java中,观察者模式可以通过Java内置的`java.util.Observable`类和`java.util.Observer`接口来实现。下面是一个简单的实例代码示例,详细注释将帮助理解观察者模式的工作原理: ```java // 定义主题(Subject),...
在Java中,我们可以利用Java提供的内置监听器机制来实现观察者模式,例如`ApplicationListener`和`ApplicationEvent`,这两个类主要用于Swing或JavaFX应用程序中的事件处理。 首先,我们来看`ApplicationListener`...
在Java中,观察者模式是通过Java的内置接口`java.util.Observer`和`java.util.Observable`来实现的。 在"java 观察者模式经典案例"中,我们以报社和读者为例来讲解这一模式。假设报社是被观察者(Observable),...
在Java中,`java.util.Observable` 和 `java.util.Observer` 类是内置的支持观察者模式的类。`Observable` 类代表被观察的对象,而`Observer`接口则表示观察者。下面我们将详细探讨这两个类以及如何使用它们来实现...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Java中,标准的观察者模式实现是...
在Java编程领域,设计模式是一种被广泛采用的最佳实践,它为解决常见的软件设计问题提供...在Java中,`java.util.Observable`和`java.util.Observer`是内置的观察者模式实现,可以方便地用于快速构建观察者模式的系统。
在实际项目中,观察者模式常常与其他设计模式结合使用,如工厂模式来创建观察者实例,单例模式来管理观察者集合,以及策略模式来定义不同的通知策略。通过这种方式,可以构建出更加灵活、可维护的系统架构。
同样,实现主题接口,通常包含一个内部列表来存储观察者实例。 3. **注册观察者**:在程序运行时,观察者通过调用主题的`addObserver()`方法进行注册,表示它们希望接收状态变更的通知。 4. **通知机制**:当主题...
在Java中,观察者模式通常通过Java内置的`java.util.Observable`类和`java.util.Observer`接口来实现。`Observable`类代表被观察的对象,`Observer`接口则是观察者的接口。下面我们将详细讨论如何在Java中实现一个...
14. **设计模式**:可能包含一些常见的设计模式,如单例、工厂、观察者、装饰器模式等,这些都是提高代码可复用性和可维护性的关键。 15. **数据库操作**:通过JDBC连接数据库,执行SQL查询,处理结果集等,了解...
在Java中,观察者模式通常通过`java.util.Observable`和`java.util.Observer`接口来实现。然而,由于这些内置实现的局限性(如Java类无法多重继承),在实际应用中,开发者通常会自定义类来更好地适应特定场景的需求...
在实际开发中,很多框架和库也内置了观察者模式,如JavaScript中的EventEmitter(Node.js)、C#的事件和委托,以及Android中的BroadcastReceiver等。这些工具使得开发者可以更便捷地应用观察者模式,提高代码的可...