观察者模式是一种行为型设计模式,它定义了对象之间的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都能够得到通知并自动更新。
要实现观察者模式,需要遵循以下步骤:
以下是一个简单的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); | |
} | |
} |