帮忙写一个Java观察者设计模式
时间: 2023-02-15 19:14:36 浏览: 63
好的。观察者设计模式(Observer Design Pattern)是行为型设计模式之一,它描述了如何让多个对象相互观察。这样当其中一个对象的状态发生改变时,它会主动地通知它的观察者,使得这些观察者可以自动更新自己的状态。
在Java中,我们可以使用Java.util.Observer和Java.util.Observable来实现观察者模式。
首先,观察者(Observer)需要实现Observer接口,并实现update()方法。此方法用于在被观察者(Observable)的状态发生改变时被调用。
被观察者(Observable)需要继承Observable类,并实现自己的状态变化通知方法。此方法通常是setChanged()和notifyObservers(),分别用于更新被观察者的状态和通知所有观察者。
下面是一个例子:
```
import java.util.Observable;
import java.util.Observer;
public class MyObservable extends Observable {
private int value;
public void setValue(int value) {
this.value = value;
setChanged(); // 设置状态已改变
notifyObservers(); // 通知所有观察者
}
public int getValue() {
return value;
}
}
public class MyObserver implements Observer {
@Override
public void update(Observable o, Object arg) {
if (o instanceof MyObservable) {
MyObservable myObservable = (MyObservable) o;
int value = myObservable.getValue();
// 更新状态
}
}
}
// 在其他地方使用
MyObservable