观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生变化时,它的所有依赖者(观察者)都会收到通知并自动更新。观察者模式在许多编程场景中都有广泛应用,例如发布-订阅模式、事件驱动架构等。
下面是一个简单的Java观察者模式示例代码:
首先,定义一个观察者接口,用于定义观察者对象的方法:
public interface Observer {
void update(String message);
}
接下来,定义一个主题类,用于管理观察者对象:
import java.util.ArrayList;
import java.util.List;
public class Subject {
private List<Observer> observers = new ArrayList<>();
public void addObserver(Observer observer) {
observers.add(observer);
}
public void removeObserver(Observer observer) {
observers.remove(observer);
}
public void notifyObservers(String message) {
for (Observer observer : observers) {
observer.update(message);
}
}
}
最后,定义一个具体的观察者类,实现Observer接口:
public class ConcreteObserver implements Observer {
private String name;
public ConcreteObserver(String name) {
this.name = name;
}
@Override
public void update(String message) {
System.out.println(name + " 收到消息: " + message);
}
}
最后,客户端代码使用观察者模式:
public class Client {
public static void main(String[] args) {
Subject subject = new Subject();
Observer observer1 = new ConcreteObserver("观察者1");
Observer observer2 = new ConcreteObserver("观察者2");
subject.addObserver(observer1);
subject.addObserver(observer2);
subject.notifyObservers("主题通知");
}
}
运行结果如下:
观察者1 收到消息: 主题通知
观察者2 收到消息: 主题通知
通过这种方式,当主题对象的状态发生变化时,观察者对象可以自动收到通知并更新状态。观察者与主题之间的解耦使得代码更加灵活,易于扩展和维护。
本文介绍了观察者模式,它是一种行为型设计模式,定义了一对多依赖关系,状态变化时观察者会收到通知并更新。还给出Java示例代码,展示了如何定义观察者接口、主题类和具体观察者类。该模式使观察者与主题解耦,让代码更灵活、易扩展和维护。
1779

被折叠的 条评论
为什么被折叠?



