前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式-观察者模式(一)

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

原创
作者头像
堕落飞鸟
发布2023-05-04 15:58:57
1350
发布2023-05-04 15:58:57
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

介绍观察者模式

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

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

  • 主题(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接口定义了接收主题状态改变通知并更新自己的方法。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍观察者模式
  • 观察者模式的Java实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档