在springboot项目实现一个简单的观察者模式,给个简单例子
时间: 2023-12-21 10:04:11 浏览: 69
好的,以下是一个示例代码:
首先,定义一个观察者接口:
```
public interface Observer {
void update(String message);
}
```
然后,定义一个被观察者类:
```
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);
}
}
}
```
最后,在你的 Spring Boot 项目中使用观察者模式:
```
@Component
public class MyComponent implements Observer {
@Autowired
private Subject subject;
@PostConstruct
public void init() {
subject.attach(this);
}
@PreDestroy
public void destroy() {
subject.detach(this);
}
@Override
public void update(String message) {
System.out.println("Received message: " + message);
}
}
```
这样,当 Subject 类的状态发生变化时,它会通知所有观察者,包括 MyComponent 类。在 MyComponent 类中,你可以实现 update 方法来处理被通知的消息。
阅读全文