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

03使用jdk提供类实现观察者模式(三)

阅读更多

1.jdk默认对观察者模式提供了支持

   被观察着继承Observable

    观察者实现Observer接口

 

    被观察者通过调用notifyObservers()方法通知观察者

 

2.代码实现

   /**

 * 被观察者
 * @author Administrator
 *
 */
public class Watched extends Observable {

	public void count(int num){
		
		for(;num>=0;num--){
			//通知之前一定要设定setChanged
			this.setChanged();
			
			//this.notifyObservers();
			
			//如果需要为观察者传递信息,调用此方法,observer 的update第二个参数就能接受
			this.notifyObservers(num);
			
			try {
				Thread.sleep(200);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		
	}
}

 

 

public class Watcher implements Observer {

	/**
	 * arg0:被观查者对象
	 * arg1:被观察者传递给观察者信息
	 */
	@Override
	public void update(Observable arg0, Object arg1) {
		System.out.println("update....."+arg1);
	}

}

 

public class Watcher2 implements Observer {

	@Override
	public void update(Observable arg0, Object arg1) {
		System.out.println("update2....."+arg1);
	}

}

 

   客户端

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Watched watched = new Watched();
		Observer watcher = new Watcher();
		watched.addObserver(watcher);
		Observer watcher2 = new Watcher2();
		watched.addObserver(watcher2);
		
		/**
		 * 那个观察者后被加入,那个观察者update方法就想执行
		 */
		watched.count(10);
	}

}
 
分享到:
评论

相关推荐

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

    这些类和接口可以帮助开发者轻松地实现观察者模式。 1. **Observable类**: - 提供了创建可被监控对象的基础。 - 当对象的状态发生变化时,可以调用`setChanged()`方法标记对象状态已更改。 - 调用`...

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

    为了实现观察者模式,你需要创建一个实现了`Observer`接口的类,这个类代表具体的观察者。在这个类中,你需要实现`update()`方法,定义当接收到通知时应执行的操作。 接下来,我们可以创建一个具体的`Observable`...

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

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

    Java观察者模式代码

    下面我们将详细介绍如何在Java中实现观察者模式。 1. **定义主题(Subject)**:在Java中,我们通常通过继承`Observable`类来创建被观察的对象。这个类会维护一个观察者列表,并提供添加、删除和通知观察者的方法。...

    Java帝国之观察者模式

    实现观察者模式之后,UserAction类不再需要关心具体有多少个观察者,或者这些观察者具体是做什么的。当需要添加新的观察者时,只需实现UserActionSubscriber接口,并注册到UserAction类中即可。这种模式大大降低了...

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

    总结起来,Java8为实现观察者模式提供了新的可能性,通过lambda表达式和并发工具,我们可以编写出更加简洁、高效且线程安全的观察者模式实现。然而,理解和解决观察者模式中的复杂问题,如内存泄漏、线程安全和性能...

    java 观察者模式 (Observe)

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

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

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

    java实验策略模式观察者模式和组合模式.doc

    定义一个 `Notice` 类作为主题接口,学生、老师和行政人员类实现观察者接口。若要实现一个观察者可以订阅多个信息,可以通过让观察者持有多个订阅(订阅主题的引用)来实现,使得一个观察者可以监听多个信息源。 3....

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

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

    java观察者模式介绍

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

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

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

    jdk中设计模式

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

    java实验:策略模式、观察者模式和组合模式.doc

    2. **观察者模式**:观察者模式用于实现发布-订阅机制。在这个实验中,`Notice` 类作为主题接口,实现了发布信息的功能。`Student`、`Teacher` 和 `Admin` 类作为观察者,实现了订阅信息的接口。当 `Notice` 类发布...

    专题资料(2021-2022年)java实验策略模式、观察者模式和组合模式.doc

    实验代码包括UML类图和具体实现,如`DrawShape`类负责绘制所有形状,`MyShape`及其子类代表不同形状,以及`Notice`、`Student`、`Teacher`和`Admin`类实现观察者模式。 这个实验旨在帮助学生深入理解设计模式的概念...

    设计模式实战、jdk源码|simple-demo.zip

    设计模式分为三大类:创建型模式(如单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式)、结构型模式(如适配器模式、装饰器模式、代理模式、桥接模式、组合模式、外观模式、享元模式)和行为型模式(如...

    jdk动态代理技术详解

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

    全面解析Java8观察者模式

    在Java8中实现观察者模式,我们可以利用Java的接口和事件处理机制。Java的`java.util.Observable`类和`java.util.Observer`接口提供了基础框架。`Observable`类代表被观察的目标,它可以被多个观察者(实现了`...

    JDK API 1.8 中文版 & JDK API 1.6 中文版

    3. **NIO.2 (New I/O 2)**: JDK 1.6引入了NIO.2,提供异步I/O操作,增加了文件系统相关的API,如文件路径、文件属性、文件观察者等。 4. **动态代理增强**: 支持接口中的默认方法,允许代理类实现接口的默认方法,...

    jdk1.8.0.rar

    这对于设计模式如观察者模式等提供了更大的灵活性。 此外,新版本还引入了方法引用来代替传统的匿名内部类,简化了代码。方法引用可以是静态方法引用、实例方法引用或构造器方法引用,使得代码更加紧凑且易于理解。...

Global site tag (gtag.js) - Google Analytics