在Java中,使用监听者模式(Observer Pattern)需要以下步骤:
-
创建一个被观察者接口(Subject),并定义添加、删除和通知观察者的方法。
public interface Subject { void registerObserver(Observer observer); void removeObserver(Observer observer); void notifyObservers(); }
-
创建一个观察者接口(Observer),并定义接收被观察者通知的方法。
public interface Observer { void update(); }
-
创建一个具体的被观察者类(具体主题),实现被观察者接口,维护一个观察者列表,并在需要时通知观察者。
import java.util.ArrayList; import java.util.List;
public class ConcreteSubject implements Subject {
private List
@Override
public void registerObserver(Observer observer) {
observers.add(observer);
}
@Override
public void removeObserver(Observer observer) {
observers.remove(observer);
}
@Override
public void notifyObservers() {
for (Observer observer : observers) {
observer.update();
}
}
// 其他业务逻辑...
}
4. 创建一个具体的观察者类,实现观察者接口,并在被观察者通知时执行相应的操作。
```java
public class ConcreteObserver implements Observer {
@Override
public void update() {
// 执行观察者需要执行的操作
}
}
-
创建客户端类,用来测试观察者模式。
public class Client { public static void main(String[] args) { ConcreteSubject subject = new ConcreteSubject(); ConcreteObserver observer1 = new ConcreteObserver(); ConcreteObserver observer2 = new ConcreteObserver(); subject.registerObserver(observer1); subject.registerObserver(observer2); subject.notifyObservers(); } }
以上就是在Java中使用监听者模式的基本步骤。通过这种方式,被观察者和观察者之间的耦合性大大降低,使得系统更加灵活和可扩展。