Java观察者模式写一个程序
时间: 2023-12-07 18:02:34 浏览: 79
可以的,我可以帮您解答这个问题。观察者模式是一种常用的设计模式,它用于对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都将得到通知并自动更新状态。在 Java 中,可以通过利用 Java 自带的 Observer 和 Observable 类来实现观察者模式。以下是一个基本的示例代码:
```
import java.util.Observable;
import java.util.Observer;
// 定义被观察者类
class MyObservable extends Observable {
public void doSomething() {
// 通知所有观察者更新状态
setChanged();
notifyObservers();
}
}
// 定义观察者类
class MyObserver implements Observer {
public void update(Observable observable, Object arg) {
// 响应被观察者的状态更新
System.out.println("Observable state updated!");
}
}
public class ObserverPatternDemo {
public static void main(String[] args) {
MyObservable observable = new MyObservable();
MyObserver observer = new MyObserver();
observable.addObserver(observer);
observable.doSomething();
}
}
```
以上代码中,MyObservable 类是被观察者类,它继承自 Java 中的 Observable 类,并实现了自己的业务逻辑,当 doSomething() 方法被调用时,它会通知所有观察者更新状态。MyObserver 类是观察者类,它实现了 Observer 接口,并在 update() 方法中响应被观察者的状态更新。在 main() 方法中,我们创建了 MyObservable 类和 MyObserver 类的实例,并通过 addObserver() 方法将 observer 对象添加到 observable 对象的观察者列表中。当 observable 对象的 doSomething() 方法被调用时,将会通知所有观察者更新状态,随后观察者对象的 update() 方法将被调用并响应被观察者的状态更新。
阅读全文