`

JDK观察者模式实现Observer Observable

    博客分类:
  • jdk
阅读更多
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.");
	}
}
分享到:
评论
3 楼 antlove 2013-02-08  
zjuttsw 写道
Observer貌似是接口吧。。

是的。java.util.Observer,java.util.Observable应该表述为jdk的观察模式的通用实现。这个比较好,我之前的用词有点不恰当。
2 楼 zjuttsw 2013-02-06  
Observer貌似是接口吧。。
1 楼 lijiejava 2013-02-06  

相关推荐

    设计模式之观察者模式Java实现

    在Java中,观察者模式通常通过Java内置的`java.util.Observable`类和`java.util.Observer`接口来实现。`Observable`类代表被观察的对象,它可以有多个观察者,而`Observer`接口则定义了观察者的通用行为。 首先,...

    观察者模式详解(JDK中最重要的模式)

    ### 观察者模式详解(JDK中最重要的模式) #### 概述 观察者模式是一种设计模式,它定义了一种一对多的关系,使得多个观察者对象可以同时监听某个主题对象。当主题对象的状态发生变化时,它会通知所有的观察者对象...

    Java观察者模式代码

    在Java中,观察者模式的实现主要依赖于`java.util.Observable`类和`java.util.Observer`接口。`Observable`类代表被观察的对象,而`Observer`接口则表示观察者。下面我们将详细介绍如何在Java中实现观察者模式。 1....

    监听者模式练习(包括jdk api的实现和自定义实现)

    首先,我们要理解JDK API中的观察者模式实现。`java.util.Observable`类代表可被观察的对象,它可以有多个观察者。而`java.util.Observer`接口则定义了观察者的接口,每个观察者都需要实现这个接口以定义其更新行为...

    Java设计模式-第22章-观察者模式.ppt

    Java标准库提供了`java.util.Observable`和`java.util.Observer`两个类来支持观察者模式。`Observable`类代表观察目标,`Observer`接口代表观察者。用户可以通过继承`Observable`类来创建自己的观察目标,并通过实现...

    java观察者模式介绍

    JDK里提供的observer设计模式的实现由java.util.Observable类和 java.util.Observer接口组成。从名字上可以清楚的看出两者在Observer 设计模式中分别扮演的角色:Observer是观察者角色,Observable是被观察目标...

    java 观察者模式 (Observe)

    `java.util.Observable` 类和 `java.util.Observer` 接口提供了观察者模式的基础实现。任何继承自 `Observable` 的类都可以成为主题,而实现 `Observer` 接口的类则可以作为观察者。 在实际开发中,观察者模式可以...

    2 观察者模式-MOOC课程内容.pdf

    在Java语言中,JDK提供了对观察者模式的支持。java.util.Observer接口和java.util.Observable类是这一支持的体现。Observable类是Subject的基类,任何需要被观察的类都可以继承这个类。它提供了添加/删除Observer的...

    使用Java8实现观察者模式的方法(上)

    在Java8之前,观察者模式通常通过实现Java.util.Observer接口和java.util.Observable类来实现。观察者通过调用Observable的addObserver()方法注册到主题,而主题在状态变化时调用notifyObservers()方法通知所有注册...

    jdk中设计模式

    15. **Observer(观察者模式)**:`java.util.Observer`和`Observable`,以及Swing中的监听器,当对象状态改变时通知其他对象。 16. **Mediator(中介者模式)**:如`Swing`的`ButtonGroup`,协调多个组件之间的...

    全面解析Java8观察者模式

    这种模式在Java8中得到了很好的支持,尤其是在引入lambda表达式之后,使得观察者模式的实现更加简洁和高效。 在Java8中实现观察者模式,我们可以利用Java的接口和事件处理机制。Java的`java.util.Observable`类和`...

    JDK中有关23个经典设计模式的示例

    `java.util.Observable`和`java.util.Observer`接口就是观察者模式的实现。 14. 模板方法模式(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中。`java.io.InputStream`的`read()`方法就是...

    设计模式学习笔记

    在Java中,JDK提供了一种内置的观察者模式实现,即java.util.Observable类和java.util.Observer接口。但这里我们探讨的是不依赖JDK的实现方式,这通常意味着我们需要自定义主题和观察者的接口或类。 首先,定义一个...

    EventBus消息总线

    EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。 ...

    jdk动态代理技术详解

    JDK 动态代理技术是 Java 语言自身对动态代理的支持,类似于 JDK 中在 java.util 包中提供 Observable 类和 Observer 接口提供对观察者模式的语言级支持。动态代理的优点是可以动态地为软件增加功能。 ...

    北邮 java 作业6 设计模式1

    Java中的java.util.Observable和java.util.Observer接口就是很好的观察者模式实现。 适配器模式(Adapter Pattern)允许两个不兼容的接口通过适配器进行通信。它将一个类的接口转换成客户希望的另一个接口。适配器...

    设计模式Java实现

    观察者模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。Java中,`java.util.Observable`和`java.util.Observer`接口提供了...

    设计模式Java语言中的应用

    Java中的java.util.Observer和java.util.Observable接口就是观察者模式的具体实现。 5. 装饰器模式(Decorator Pattern): 装饰器模式允许在运行时为对象添加新的行为或职责,而无需更改其原有类。在Java中,装饰...

    jdk+api1.7中文版

    再者,"观察者模式"是设计模式之一,Java中通过`Observer`和`Observable`接口来实现。这种模式允许一个对象(被观察者)的状态变化自动通知一组其他对象(观察者)。这对于事件驱动编程和解耦组件间交互非常有用,...

Global site tag (gtag.js) - Google Analytics