java常见面试题:什么是观察者模式(Observer Pattern)?如何实现观察者模式?

发布时间:2024年01月10日

观察者模式是一种行为型设计模式,它定义了对象之间的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都能够得到通知并自动更新。

要实现观察者模式,需要遵循以下步骤:

  1. 定义观察者和被观察者的接口:观察者接口需要包含一个更新方法,被观察者接口需要包含一个添加和删除观察者的方法以及一个触发通知的方法。
  2. 实现被观察者类:被观察者类需要维护一个观察者列表,并在其状态发生变化时触发通知。
  3. 实现观察者类:观察者类需要实现观察者接口,并在收到通知时更新自己的状态。
  4. 注册和注销观察者:被观察者类需要提供添加和删除观察者的方法,以便观察者可以注册和注销。

以下是一个简单的Java代码示例,展示了如何实现观察者模式:

 

java复制代码

// 定义观察者和被观察者的接口
interface Observer {
void update(String message);
}
interface Subject {
void addObserver(Observer observer);
void removeObserver(Observer observer);
void notifyObservers(String message);
}
// 实现被观察者类
class ConcreteSubject implements Subject {
private List<Observer> observers = new ArrayList<>();
private String message;
@Override
public void addObserver(Observer observer) {
observers.add(observer);
}
@Override
public void removeObserver(Observer observer) {
observers.remove(observer);
}
@Override
public void notifyObservers(String message) {
this.message = message;
for (Observer observer : observers) {
observer.update(message);
}
}
}
// 实现观察者类
class ConcreteObserver implements Observer {
private String name;
public ConcreteObserver(String name) {
this.name = name;
}
@Override
public void update(String message) {
System.out.println(name + " received message: " + message);
}
}
文章来源:https://blog.csdn.net/dxl920807/article/details/135490509
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。