通俗讲解Observer观察者模式(监听者模式)-设计模式-行为型

本文详细讲解了观察者模式,一种用于实时监测状态变化并主动通知的方法。文章通过课程问题通知老师、小孩睡醒通知父母、Java JWT按钮事件等例子,介绍了观察者模式的原理和实现,包括事件源、观察者和事件的角色定义,并提供了代码示例。
摘要由CSDN通过智能技术生成

目录

一、概述

1、实现对状态的实时监测一般就两种思路:

2、常见的场景有:

3、观察者的核心思路与角色

4、定义:

二、实际例子与代码实现

1、课程产生问题提问通知到老师

2、小孩睡醒通知到父母

 

3、Java JWT中的Button点击事件监听与响应

三、源码


 

一、概述

我们都多少都遇到过一些场景,需要关注一件事物的状态变化,当状态发生变化时进行相应的操作或处理。

1、实现对状态的实时监测一般就两种思路

(1)一种轮训查看,每隔一段时间查看一些状态;

(2)另一种,就是什么时候发生状态变化了,让事物主动发起通知或广播

2、常见的场景有:

  • 比如区块链的比特币发生一笔交易时,发生交易的节点要向其他节点进行广播,其他节点进行计算和记录。
  • 微信朋友圈里发一条动态实现通知到所有好友。
  • 商品降价后通知到所有关注的消费者,

 

3、观察者的核心思路与角色

观察者模式的核心思路就是主动广播通知。维护一个观察者的列表,即被通知者的列表,然后根据事件源的某些状态变化,触发通知操作。然后观察者接收到通知后做出相应的操作。

观察者模式中涉及3个角色:

  • Source:事件源,或者叫被观察者、主题对象。
  • Observer:观察者,也是被通知者,消息接收处理者。
  • Event:事件或消息。一般由Source被观察者发起事件,然后传递到Obsever

4、定义:

定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新。

 

二、实际例子与代码实现

主要介绍三个小例子,分别是课程产生问题提问通知到老师、小孩睡醒通知到父母、还有Java JWT中的Button点击事件监听与响应。

详细的代码在这里:

https://github.com/phs999/DesignPatterns/tree/5eddf88631fb22a72a0a917145265866221036c9/design_pattern/src/behavioral/observer

下面是核心介绍:

1、课程产生问题提问通知到老师

该例子应用了JDK自带的观察者模式的支持,java.util.Observable可以被Source事件源对象类继承,用于实现通知列表管理及通知动作触发;java.util.Observer可以被具体的O

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值