JDK提供了观察者模式的实现类java.util.Observer,java.util.Observable.
java.util.Observer为观察者。
java.util.Observable观察物。
1.观察物
package observer;
import java.util.Observable;
public class Publisher extends Observable {
private String magazineName;
public String getMagazineName() {
return magazineName;
}
public void publish(String magazineName) {
this.magazineName = magazineName;
setChanged();// set the changed signal
notifyObservers();// notify all the observers
}
}
2.观察者
package observer;
import java.util.Observable;
import java.util.Observer;
public class Reader implements Observer {
// when the observable changed ,
// it will notify all the observers and this method will be invoke
@Override
public void update(Observable o, Object arg) {
if(o instanceof Publisher){
Publisher p = (Publisher) o;
System.out.println("i want to read magazine. " + p.getMagazineName());
}
}
}
3.测试类
package observer;
public class Main {
public static void main(String[] args) {
// create observer
Reader reader=new Reader();
// create observable
Publisher publisher = new Publisher();
// add observer
publisher.addObserver(reader);
// observable do some action
publisher.publish("I am antlove.");
}
}
分享到:
相关推荐
在Java中,观察者模式通常通过Java内置的`java.util.Observable`类和`java.util.Observer`接口来实现。`Observable`类代表被观察的对象,它可以有多个观察者,而`Observer`接口则定义了观察者的通用行为。 首先,...
### 观察者模式详解(JDK中最重要的模式) #### 概述 观察者模式是一种设计模式,它定义了一种一对多的关系,使得多个观察者对象可以同时监听某个主题对象。当主题对象的状态发生变化时,它会通知所有的观察者对象...
在Java中,观察者模式的实现主要依赖于`java.util.Observable`类和`java.util.Observer`接口。`Observable`类代表被观察的对象,而`Observer`接口则表示观察者。下面我们将详细介绍如何在Java中实现观察者模式。 1....
首先,我们要理解JDK API中的观察者模式实现。`java.util.Observable`类代表可被观察的对象,它可以有多个观察者。而`java.util.Observer`接口则定义了观察者的接口,每个观察者都需要实现这个接口以定义其更新行为...
Java标准库提供了`java.util.Observable`和`java.util.Observer`两个类来支持观察者模式。`Observable`类代表观察目标,`Observer`接口代表观察者。用户可以通过继承`Observable`类来创建自己的观察目标,并通过实现...
JDK里提供的observer设计模式的实现由java.util.Observable类和 java.util.Observer接口组成。从名字上可以清楚的看出两者在Observer 设计模式中分别扮演的角色:Observer是观察者角色,Observable是被观察目标...
`java.util.Observable` 类和 `java.util.Observer` 接口提供了观察者模式的基础实现。任何继承自 `Observable` 的类都可以成为主题,而实现 `Observer` 接口的类则可以作为观察者。 在实际开发中,观察者模式可以...
在Java语言中,JDK提供了对观察者模式的支持。java.util.Observer接口和java.util.Observable类是这一支持的体现。Observable类是Subject的基类,任何需要被观察的类都可以继承这个类。它提供了添加/删除Observer的...
在Java8之前,观察者模式通常通过实现Java.util.Observer接口和java.util.Observable类来实现。观察者通过调用Observable的addObserver()方法注册到主题,而主题在状态变化时调用notifyObservers()方法通知所有注册...
15. **Observer(观察者模式)**:`java.util.Observer`和`Observable`,以及Swing中的监听器,当对象状态改变时通知其他对象。 16. **Mediator(中介者模式)**:如`Swing`的`ButtonGroup`,协调多个组件之间的...
这种模式在Java8中得到了很好的支持,尤其是在引入lambda表达式之后,使得观察者模式的实现更加简洁和高效。 在Java8中实现观察者模式,我们可以利用Java的接口和事件处理机制。Java的`java.util.Observable`类和`...
`java.util.Observable`和`java.util.Observer`接口就是观察者模式的实现。 14. 模板方法模式(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中。`java.io.InputStream`的`read()`方法就是...
在Java中,JDK提供了一种内置的观察者模式实现,即java.util.Observable类和java.util.Observer接口。但这里我们探讨的是不依赖JDK的实现方式,这通常意味着我们需要自定义主题和观察者的接口或类。 首先,定义一个...
EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。 ...
JDK 动态代理技术是 Java 语言自身对动态代理的支持,类似于 JDK 中在 java.util 包中提供 Observable 类和 Observer 接口提供对观察者模式的语言级支持。动态代理的优点是可以动态地为软件增加功能。 ...
Java中的java.util.Observable和java.util.Observer接口就是很好的观察者模式实现。 适配器模式(Adapter Pattern)允许两个不兼容的接口通过适配器进行通信。它将一个类的接口转换成客户希望的另一个接口。适配器...
观察者模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。Java中,`java.util.Observable`和`java.util.Observer`接口提供了...
Java中的java.util.Observer和java.util.Observable接口就是观察者模式的具体实现。 5. 装饰器模式(Decorator Pattern): 装饰器模式允许在运行时为对象添加新的行为或职责,而无需更改其原有类。在Java中,装饰...
再者,"观察者模式"是设计模式之一,Java中通过`Observer`和`Observable`接口来实现。这种模式允许一个对象(被观察者)的状态变化自动通知一组其他对象(观察者)。这对于事件驱动编程和解耦组件间交互非常有用,...