在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
分享到:
相关推荐
Java内置的Observable类和Observer接口提供了基本的观察者模式功能,你可以通过继承Observable类和实现Observer接口来使用
在Java中,`Observable`类和`Observer`接口是内置的实现,用于创建这种观察者模式。现在我们来详细探讨`Observable`和`Observer`的原理以及如何手动实现简单的`MyObservable`和`MyObserver`。 首先,`Observable`类...
4. **Java实现**:在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了观察者模式的标准实现。`Observable`类代表主题,`Observer`接口代表观察者。通过`addObserver()`添加观察者,`...
在Java中,观察者模式的实现通常涉及到Java的内置接口`java.util.Observer`和`java.util.Observable`。`Observer`接口定义了一个方法`update(Observable o, Object arg)`,当被观察的对象状态改变时,这个方法会被...
在这个例子中,`ConcreteObserver`实现了`Observer`接口,`Main`类创建了一个`Observable`实例,并添加了两个观察者。当`Observable`的状态改变并调用`notifyObservers`时,每个观察者都会收到更新通知。 理解...
在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了观察者模式的标准实现。下面是一个简单的示例: ```java import java.util.Observable; import java.util.Observer; public class Main { ...
观察者模式在Java中得到了很好的支持,`java.util.Observable`和`java.util.Observer`是Java标准库提供的观察者模式实现。开发者可以方便地利用这两个类实现观察者模式,也可以根据实际需求自定义观察者接口和主题类...
总结一下,Observer观察者模式是一种有效的设计模式,它实现了对象状态改变时的通知机制,使得多个对象能够同步更新,保持数据的一致性。在汽车与驾驶员的例子中,观察者模式帮助我们构建了一个灵活、可扩展的系统,...
在Java中,我们可以使用`java.util.Observable`和`java.util.Observer`接口来实现观察者模式。但在这个例子中,我们可能看到的是自定义实现的观察者模式,因为文件列表中包含的`Test.java`, `Customer1.java`, `...
标题中的"OBserver模式设计实现"是指探讨如何在实际编程中应用观察者模式,无论是用Java还是C++。Head First系列书籍是著名的编程学习资源,以易懂的方式解释复杂的设计模式。在描述中提到的"Head First模式设计用的...
在IT行业中,`Observable`与`Observer`是Java编程语言中的两个重要概念,它们是JavaFX和Java.util.Observable库的一部分,用于实现观察者模式。观察者模式是一种设计模式,它定义了对象之间的一对多依赖关系,当一个...
在Java中,`java.util.Observable`和`java.util.Observer`接口提供了内置的支持来实现观察者模式。开发者可以创建自己的类实现这两个接口,或者使用更现代的事件监听框架如JavaFX或Swing中的事件处理机制。 观察者...
在Java中,`java.util.Observable`和`java.util.Observer`类提供了观察者模式的内置支持。而在其他语言中,如C#、Python等,也可以轻松实现观察者模式,通过事件或委托机制。 总结来说,观察者模式是一种重要的设计...
在Java中,观察者模式可以通过Java的内置API `java.util.Observable` 和 `java.util.Observer` 类来实现。`Observable` 类代表被观察的对象,而 `Observer` 接口则表示观察者。以下是对这两个关键类的详细解释: 1....
在Java中,观察者模式可以通过Java的内置接口`java.util.Observer`和`java.util.Observable`来实现。`Observer`接口代表观察者,而`Observable`类代表被观察的对象,也称为主题(Subject)。下面将详细介绍这两个...
在Java中,观察者模式通常通过Java内置的`java.util.Observable`类和`java.util.Observer`接口来实现。`Observable`类代表被观察的对象,它可以有多个观察者,而`Observer`接口则定义了观察者的通用行为。 首先,...
在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了对观察者模式的内置支持。`Observable`类代表被观察的对象,它可以有多个观察者,而`Observer`接口则定义了观察者的通用行为。 ### `...
观察者模式可以通过多种编程语言实现,例如在Java中,可以使用`java.util.Observable`和`java.util.Observer`接口。被观察者实现`Observable`接口,而观察者实现`Observer`接口。当被观察者状态改变时,调用`...
在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了观察者模式的基础实现。 ### 2. Android中的观察者模式 在Android中,观察者模式通常用于Activity、Fragment与ViewModel之间的交互,以及...