`
ye_jinghua
  • 浏览: 31782 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Observable与Observer实现观察者模式

阅读更多

Java中通过Observable类和Observer接口实现了观察者模式。一个Observer对象监视着一个Observable对象的变化,当Observable对象发生变化时,Observer得到通知,就可以进行相应的工作。

 

一个简单例子:

//被观察者
public class OBservable extends java.util.Observable {
	int state = 0;

	public int getState() {
		return state;
	}

	public void setState(int state) {

		this.setChanged();
		this.notifyObservers(state);// 当值改变时通知观察者,调用观察者的update

		this.state = state;
	}

	public static void main(String[] args) {
		OBservable horr = new OBservable();

		Persons ps = new Persons("工程师A");// 观察者A
		Persons ps1 = new Persons("工程师B");// 观察者B

		horr.addObserver(ps);// 添加观察
		horr.addObserver(ps1);// 添加观察

		// 改变被观察者的状态
		horr.setState(3);
		horr.setState(8);

	}
}

 

 

//观察员
public class Persons implements java.util.Observer {
	String name;
	Persons(String name){
		this.name=name;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public void update(java.util.Observable o, Object arg) {		
		System.out.println(this.name+" 收到通知 " +
				"Horrific.state由"+((OBservable)o).getState()+"变为"+arg);
		
	}

}

 

 

运行结果:

工程师B 收到通知 Horrific.state由0变为3
工程师A 收到通知 Horrific.state由0变为3
工程师B 收到通知 Horrific.state由3变为8
工程师A 收到通知 Horrific.state由3变为8

1
0
分享到:
评论

相关推荐

    java实现观察者模式-Java内置的观察者模式(基于Observable和Observer)

    Java内置的Observable类和Observer接口提供了基本的观察者模式功能,你可以通过继承Observable类和实现Observer接口来使用

    observable-observer

    在Java中,`Observable`类和`Observer`接口是内置的实现,用于创建这种观察者模式。现在我们来详细探讨`Observable`和`Observer`的原理以及如何手动实现简单的`MyObservable`和`MyObserver`。 首先,`Observable`类...

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

    4. **Java实现**:在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了观察者模式的标准实现。`Observable`类代表主题,`Observer`接口代表观察者。通过`addObserver()`添加观察者,`...

    设计模式之Observer - 观察者模式

    在Java中,观察者模式的实现通常涉及到Java的内置接口`java.util.Observer`和`java.util.Observable`。`Observer`接口定义了一个方法`update(Observable o, Object arg)`,当被观察的对象状态改变时,这个方法会被...

    Observer(观察者模式)学习源码

    在这个例子中,`ConcreteObserver`实现了`Observer`接口,`Main`类创建了一个`Observable`实例,并添加了两个观察者。当`Observable`的状态改变并调用`notifyObservers`时,每个观察者都会收到更新通知。 理解...

    设计模式学习之Observer(观察者模式)

    在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了观察者模式的标准实现。下面是一个简单的示例: ```java import java.util.Observable; import java.util.Observer; public class Main { ...

    设计模式之观察者模式(Observer)

    观察者模式在Java中得到了很好的支持,`java.util.Observable`和`java.util.Observer`是Java标准库提供的观察者模式实现。开发者可以方便地利用这两个类实现观察者模式,也可以根据实际需求自定义观察者接口和主题类...

    Observer观察者模式

    总结一下,Observer观察者模式是一种有效的设计模式,它实现了对象状态改变时的通知机制,使得多个对象能够同步更新,保持数据的一致性。在汽车与驾驶员的例子中,观察者模式帮助我们构建了一个灵活、可扩展的系统,...

    设计模式之略见一斑(Observer观察者模式)

    在Java中,我们可以使用`java.util.Observable`和`java.util.Observer`接口来实现观察者模式。但在这个例子中,我们可能看到的是自定义实现的观察者模式,因为文件列表中包含的`Test.java`, `Customer1.java`, `...

    OBserver模式设计实现

    标题中的"OBserver模式设计实现"是指探讨如何在实际编程中应用观察者模式,无论是用Java还是C++。Head First系列书籍是著名的编程学习资源,以易懂的方式解释复杂的设计模式。在描述中提到的"Head First模式设计用的...

    Observable与Observer

    在IT行业中,`Observable`与`Observer`是Java编程语言中的两个重要概念,它们是JavaFX和Java.util.Observable库的一部分,用于实现观察者模式。观察者模式是一种设计模式,它定义了对象之间的一对多依赖关系,当一个...

    观察者模式Observer

    在Java中,`java.util.Observable`和`java.util.Observer`接口提供了内置的支持来实现观察者模式。开发者可以创建自己的类实现这两个接口,或者使用更现代的事件监听框架如JavaFX或Swing中的事件处理机制。 观察者...

    设计模式-观察者模式(讲解及其实现代码)

    在Java中,`java.util.Observable`和`java.util.Observer`类提供了观察者模式的内置支持。而在其他语言中,如C#、Python等,也可以轻松实现观察者模式,通过事件或委托机制。 总结来说,观察者模式是一种重要的设计...

    java实现观察者模式

    在Java中,观察者模式可以通过Java的内置API `java.util.Observable` 和 `java.util.Observer` 类来实现。`Observable` 类代表被观察的对象,而 `Observer` 接口则表示观察者。以下是对这两个关键类的详细解释: 1....

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

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

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

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

    java观察者模式观察者模式

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

    观察者模式(Observer)

    观察者模式可以通过多种编程语言实现,例如在Java中,可以使用`java.util.Observable`和`java.util.Observer`接口。被观察者实现`Observable`接口,而观察者实现`Observer`接口。当被观察者状态改变时,调用`...

    一个类实现Android观察者模式(最简单实用的观察者模式)

    在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了观察者模式的基础实现。 ### 2. Android中的观察者模式 在Android中,观察者模式通常用于Activity、Fragment与ViewModel之间的交互,以及...

Global site tag (gtag.js) - Google Analytics