假设场景,考生甲和考生乙共同由一个监考老师监考,上代码:

class Dep {  // 监考老师constructor () {this.subs = []  // 存放属于当前老师监考的学生}addSub (watcher) {if (watcher && watcher.action) {  // 监考老师是该老师的就进来this.subs.push(watcher)}}notify () {  // 告知可以答题了this.subs.forEach(sub => {  // 每个考生开始以各自的方式答题sub.action()})}}
class Watcher {  // 考生constructor(name, way) {  // 注册考生信息和对应行为this.name = namethis.way = way}action () {console.log(this.name + '开始' + this.way); // 执行}}const dep = new Dep() // 创建监考老师const watcher1 = new Watcher('考生甲', '从前往后答题')const watcher2 = new Watcher('考生乙', '从后往前答题')dep.addSub(watcher1) // 甲是该监考老师监考dep.addSub(watcher2) // 乙也是该监考老师监考dep.notify() // 监考老师说可以答题了

dep.notify()的结果:

与发布订阅有所不同,观察者模式两角色之间存在耦合关系

观察者模式,看完还不懂我吃电脑相关推荐

  1. 面试挂在JVM?别慌,图文讲解JVM工作原理,看完还不懂我跪键盘

    本文转载自:面试挂在JVM?别慌,图文讲解JVM工作原理,看完还不懂我跪键盘 JDK,JRE,JVM的联系是啥? JVM Java Virtual Machine JDK Java Developme ...

  2. 你不知道的js中关于this绑定机制的解析[看完还不懂算我输]

    前言 最近正在看<你不知道的JavaScript>,里面关于this绑定机制的部分讲的特别好,很清晰,这部分对我们js的使用也是相当关键的,并且这也是一个面试的高频考点,所以整理一篇文章分 ...

  3. Android进阶必备:滑动冲突解决与事件分发机制(附视频讲解)这篇看完还不懂请寄刀片

    1.前言 Android学习一段时间,需求做多了必然会遇到滑动冲突问题,比如在一个ScrollView中要嵌套一个地图View,这时候触摸移动地图或者放大缩小地图就会变得不太准确甚至没有反应,这就是遇 ...

  4. hashmap put过程_看完还不懂HashMap算我输(附互联网大厂面试常见问题)

    HashMap的原理与实现 版本之更迭: –>JDK 1.7 : Table数组+ Entry链表: –>JDK1.8 : Table数组+ Entry链表/红黑树:(为什么要使用红黑树? ...

  5. 看完还不懂HashMap算我输(附职场面试常见问题)

    HashMap的原理与实现 版本之更迭: –>JDK 1.7 : Table数组+ Entry链表: –>JDK1.8 : Table数组+ Entry链表/红黑树:(为什么要使用红黑树? ...

  6. HTTP协议是什么?详细解读HTTP看完还不懂你来找我

    文章将包含以下几方面内容: HTTP协议解读 与HTTP相关组件 与HTTP相关协议 HTTP组成 HTTP协议优缺点 HTTP协议解读 HTTP 是一种 超文本传输协议(Hypertext Tran ...

  7. 最通俗易懂的JAVA虚拟机类加载过程详解,看完还不懂你考虑转行吧!

    前言 当程序使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载.链接.初始化三个步骤对该类进行类加载. Java Class文件 class文件是一组以8位字节为基础的二进制流,各个数据项目 ...

  8. 关于ArrayList的几大问题,看完还不懂来打我!

    作者:熬夜不加班 链接:https://www.jianshu.com/p/06b82a75d2af 前言 ArrayList是Java集合框架中比较常用的数据结构了.继承自AbstractList, ...

  9. 腾讯云TVP大佬十年心血MySQL工作笔记,看完还不懂MySQL来打我!

    TVP简介(腾讯云最具价值专家) TVP(Tencent Cloud Valuable Professional),腾讯云最具价值专家,是腾讯云授予云计算领域技术专家的一个奖项.而今天小编分享的这份资 ...

  10. Outlook邮箱注册教程 不信你看完还不懂

    Outlook作为Microsoft Office家族的办公软件套装之一,关联着很多微软的其他产品.而且Outlook是欧美地区认可度比较高的,不仅可以用于一些境外联络还可以拿来注册Instagram ...

最新文章

  1. Maven使用笔记(四)pom.xml配置详解
  2. 使用聚类算法(Kmeans)进行数据降维并作为分类算法逻辑回归(logistic Regression)的数据预处理步骤实战
  3. WEB应用常见15种安全漏洞一览
  4. 几经沉浮,自乱前程——硬盘巨头启示录之迈拓篇
  5. docker 删除镜像报错 image is referenced in multiple repositories
  6. 全国计算机一级ms office考试难吗,全国计算机等级考试一级msoffice难考吗?_联展教育问答...
  7. MySQL修改数据表(ALTER TABLE语句)
  8. 常用的正则表达式的运用--学习笔记(二)
  9. 五、Kafka 用户日志上报实时统计之应用概述
  10. python之paramiko模块
  11. 122 - Trees on the level(模拟内存池解法)
  12. m1芯片Mac安装pandas库(Rosetta2转译版)
  13. RecycleView
  14. rabbitmq 用户管理
  15. cjson读取json文件_JSON格式介绍和使用cJSON解析 | 学步园
  16. 计算机轻量级硬件性能测试软件推荐
  17. 西安北邮html5,西安北邮在线菜鸟的IT梦,给我一个支点,我就能撬动地球
  18. 软件测试人员每天的工作日常
  19. python统计汉字和标点_Python处理中文标点符号大集合
  20. 学C语言的大佬们帮帮小弟吧小弟感激不尽

热门文章

  1. 防身共享-穷人救命五十秘方
  2. python 毫秒级时间与时间戳相互转换
  3. 微服务热部署,支持内网部署Jrebel(无网络)
  4. Redis核心考案 | 系统性学习 | 无知的我费曼笔记(图文排版无水印)
  5. 负数为什么要用补码来表示?
  6. 计算机储存器术语,内存是计算机行话术语随机存取存储器的缩写版本
  7. YOLOv5/v7 引入 YOLOv8 的 C2f 模块
  8. oracle键弹性域设置,OracleEBS中的弹性域讲解与设置
  9. Cesium添加自定义弹窗并设置随地图移动位置移动
  10. 【数据分享】2013-2023年全国370多个城市逐日空气质量数据(Excel格式/无需转发)