springboot 观察者模式 demo
时间: 2023-09-02 20:13:51 浏览: 128
好的!下面是一个简单的 Spring Boot 观察者模式的示例代码:
首先,我们需要定义一个被观察的主题类(Subject),可以是一个普通的 Java 类:
```java
import java.util.ArrayList;
import java.util.List;
public class Subject {
private List<Observer> observers = new ArrayList<>();
public void attach(Observer observer) {
observers.add(observer);
}
public void detach(Observer observer) {
observers.remove(observer);
}
public void notifyObservers(String message) {
for (Observer observer : observers) {
observer.update(message);
}
}
}
```
然后,定义观察者接口(Observer):
```java
public interface Observer {
void update(String message);
}
```
接下来,我们可以创建一些具体的观察者类来实现 Observer 接口:
```java
public class ConcreteObserver implements Observer {
@Override
public void update(String message) {
System.out.println("Received message: " + message);
// 实现具体的观察者逻辑
}
}
```
最后,在 Spring Boot 应用中使用观察者模式:
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ObserverPatternDemoApplication {
public static void main(String[] args) {
SpringApplication.run(ObserverPatternDemoApplication.class, args);
// 创建被观察的主题对象
Subject subject = new Subject();
// 创建观察者对象
Observer observer1 = new ConcreteObserver();
Observer observer2 = new ConcreteObserver();
// 注册观察者
subject.attach(observer1);
subject.attach(observer2);
// 发送通知
subject.notifyObservers("Hello, observers!");
}
}
```
这个示例中,我们创建了一个被观察的主题对象(Subject),并注册了两个观察者对象(ConcreteObserver)。当主题对象调用 `notifyObservers` 方法时,观察者对象会接收到通知,并执行相应的逻辑。
希望这个示例能帮助到你!如果有任何问题,请随时提问。
阅读全文