设计模式-观察者模式(一)

2023-05-04 15:58:57 浏览数 (1)

介绍观察者模式

观察者模式是一种常用的设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象,当主题对象的状态发生改变时,它的所有观察者对象都会收到通知并自动更新。

观察者模式中包含以下几个角色:

  • 主题(Subject):定义一个接口,用于注册、删除和通知观察者对象。
  • 具体主题(ConcreteSubject):实现主题接口,维护一个观察者列表,提供方法来注册、删除和通知观察者。
  • 观察者(Observer):定义一个接口,用于接收主题发出的通知。
  • 具体观察者(ConcreteObserver):实现观察者接口,具体实现接收通知并更新自己的状态。

观察者模式的Java实现

下面是一个简单的Java示例,演示了如何使用观察者模式实现一个简单的气象站,主题为气象数据,观察者为显示当前气象数据的板子和显示气象统计信息的板子。

首先,我们定义主题接口Subject和观察者接口Observer:

代码语言:javascript复制
public interface Subject {
    void registerObserver(Observer observer);
    void removeObserver(Observer observer);
    void notifyObservers();
}

public interface Observer {
    void update(float temperature, float humidity, float pressure);
}

Subject接口定义了注册观察者、删除观察者和通知观察者的方法,而Observer接口定义了接收主题状态改变通知并更新自己的方法。

0 人点赞