用Java写一段多线程实现观察者模式的代码 
时间: 2023-04-03 07:05:10 浏览: 27
可以的,以下是Java多线程实现观察者模式的代码:
```
import java.util.ArrayList;
import java.util.List;
public class ObserverPattern {
public static void main(String[] args) {
Subject subject = new Subject();
new ObserverA(subject);
new ObserverB(subject);
subject.setState(1);
subject.setState(2);
}
}
interface Observer {
void update(int state);
}
class ObserverA implements Observer {
public ObserverA(Subject subject) {
subject.addObserver(this);
}
@Override
public void update(int state) {
System.out.println("ObserverA received state: " + state);
}
}
class ObserverB implements Observer {
public ObserverB(Subject subject) {
subject.addObserver(this);
}
@Override
public void update(int state) {
System.out.println("ObserverB received state: " + state);
}
}
class Subject {
private List<Observer> observers = new ArrayList<>();
private int state;
public void addObserver(Observer observer) {
observers.add(observer);
}
public void removeObserver(Observer observer) {
observers.remove(observer);
}
public void setState(int state) {
this.state = state;
notifyObservers();
}
private void notifyObservers() {
for (Observer observer : observers) {
observer.update(state);
}
}
}
```
相关推荐















