观察者模式

什么是观察者模式?

观察者模式即一个对象被多个对象所依赖,当被依赖的对象发生更新时,会自动通知所有依赖的对象。

例如:微博上的坤坤老师,当坤坤老师在微博发文章时,会自动通知所有的粉丝。
坤坤:坤坤老师发微博了,赶紧来围观啊!

坤坤老师即为目标对象,所有的粉丝即为依赖对象。

代码实现:

首先我们定义一个kk老师的类(目标类)

// 目标类
class Kk {constructor () {// 存储所有的粉丝(粉丝:观察者们)this.fans = []}// 收集粉丝add (fans) {this.fans.push(fans)}// 删除粉丝 (删除观察者)remove (fans) {const index = this.fans.findIndex(item => item === fans)if (index > -1) {console.log('删除粉丝' + fans.name)this.fans.splice(index, 1)}}// 通知所有粉丝,坤坤老师发微博了notify () {for(let observer of this.observers) {observer.update()}}
}

在创建一个粉丝类(观察者类)

// 观察者类
class Fans {constructor (name, age) {this.name = namethis.age = age}// 坤坤老师告诉我他发微博了update () {console.log('坤坤老师告诉我发微博了,我是', this.name)}
}

创建坤坤老师,创建粉丝,坤坤老师收集粉丝并告诉粉丝发微博了

// 创建坤坤老师
const kk = new Kk()// 创建两位粉丝
const fans1 = new Fans('小花', 19)
const fans2 = new Fans('小草', 20)// 坤坤老师收集粉丝
kk.add(fans1)
kk.add(fans2)// 坤坤老师通知粉丝
kk.notify()// 坤坤老师删除粉丝1
kk.remove(fans1)// 坤坤老师通知粉丝
kk.notify()

最后输出:

坤坤老师告诉我发微博了,我是 小花
坤坤老师告诉我发微博了,我是 小草
删除粉丝小花
坤坤老师告诉我发微博了,我是 小草

看完的,点个关注再走呗! 不定时更新前端技术!

坤坤老师告诉同学们什么是观察者模式相关推荐

  1. C++函数 【鸡】 坤坤带你拿下

    大家共勉,一起拿下C++函数 一.函数的本质 函数其实很好理解,他就将一段经常使用的代码封装起来,减少重复. 就像我们用鸡代替我们的偶像,介绍不必要的重复!!! 二. 函数的定义 函数的定义一般主要有 ...

  2. 学校计算机老师关心学生的作文600字,老师关爱同学的作文十篇

    老师关爱同学的作文十篇 篇一:师生的关爱 记得我上小学二年级时,老师和同学的关爱. 早上上学的路上,我要过马路时,忘记看红绿灯了,就直接走了过去,而且还正好赶上红灯.我没看见就直接走了.躲过了一辆辆大 ...

  3. 微擎自动回复 加粉丝名_如何一天加100个精准粉丝?蒋老师告诉你系统的套路和方法...

    如何一天加100个精准粉丝?蒋老师告诉你系统的套路和方法! 不仅仅是100个精准粉丝,还需要把这100个精准粉丝变成种子用户和超级用户:然后100个种子用户裂变成500个精准用户,再变成1000个精准 ...

  4. 我们是ikun,为坤坤加油(简单的python反序列化、爬虫、越权、支付漏洞)

    题目来源:BUUCTF: CISCN2019 华北赛区 在某个深夜,身为ikun的文打开了BUUCTF,想看看有没有同为ikun的朋友,经过简单的搜索,发现竟然真的有ikun出的题目,看到这里身为ik ...

  5. C语言书写推箱子(坤坤版easyx库)

    C语言书写推箱子(坤坤版easyx库) 游戏效果的展示 运用的知识点(必看) 代码的讲解 游戏地图的实现 地图的初始化 地图图片的加载 地图图片的放置 人物和箱子的移动(重点) 游戏结束的判断 音乐的 ...

  6. Springboot毕设项目坤坤网上商城0573k(java+VUE+Mybatis+Maven+Mysql)

    Springboot毕设项目坤坤网上商城0573k(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBui ...

  7. 纯css实现坤坤经典动作-“铁山靠”

    背景 2023年2月16日,晴,今天没有工作,一直在掘金摸鱼,摸的我好累. 不行!我得找点有意义的事情做! 此时间,我发的一条沸点竟然有小黑子给我评论,\ 我看到之后气不打一处来,哥哥这么努力,还有这 ...

  8. 云开发坤坤鸡乐盒微信小程序源码

    云开发坤坤鸡乐盒微信小程序源码是由坤坤铁粉ikun们发布的一款专为ios系统的用户因无法下载软件版坤坤鸡乐盒而开发的小程序版, 源码下载:云开发坤坤鸡乐盒微信小程序源码-小程序文档类资源-CSDN下载

  9. 2022最新坤坤鸡乐盒微信小程序源码+云开发的

    正文: 云开发坤坤鸡乐盒微信小程序源码是由坤坤铁粉ikun们开发的. 因部分ios用户无法体验共举办,特地开发的小程序版鸡乐盒,听说作者也是5年的铁粉. 现在特别火,我也就不多作介绍了,点击就可以发出 ...

最新文章

  1. MERGE INTO 解决大数据量 10w 更新缓慢的问题
  2. Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台
  3. datatables 一行数据生成两行_一行代码搞定分组回归
  4. 使用fyne绘制一个交通图标
  5. Python 爬虫开发:Ajax请求响应json案例
  6. Attachment multiple read API - performance with regular expression
  7. 新功能:阿里云负载均衡支持HTTP/2、WSS协议
  8. redis 集群环境部署
  9. python读取pdf表格数据代码_Python新工具:用三行代码提取PDF表格数据
  10. ABMultiValueCopyLabelAtIndex使用不当引起的内存泄漏
  11. 机器视觉算法包halcon介绍
  12. 编写优质嵌入式C程序
  13. 中国行政区划编码-省市县镇村
  14. WPS 解决插入尾注后无法添加分节页符
  15. 最难忘的一节计算机课,作文:最难忘的一节课
  16. 有限体积法(2)——二维、三维扩散方程的离散推导
  17. 易语言游戏基址内存数据CEAA自动汇编脚本注入及CALL的调用
  18. 网技·理论 3.22
  19. 求对称点的坐标(已知对称轴函数解析式,自用)
  20. Android实习周记:第一周,井底之蛙上岸

热门文章

  1. 已创建了一个包含学生学号、身高、性别的学生身高信息表并输出到屏幕,学生信息从records.txt文件读取。 编写一个函数 void reverse(Seqlist *lp); 功能是对已建立的学生身
  2. 对作业管理系统的总结与期望
  3. java-php-python-ssm外贸服装订单管理系统计算机毕业设计
  4. esp8266接入天猫精灵教程,附开源app控制
  5. 广西单招计算机科学与技术专业,广西单招考什么科目
  6. uniapp运行基座到电视机调试
  7. 17 记一次 spark 读取大数据表 OOM OutOfMemoryError: GC overhead limit exceeded
  8. 【日常Exception】第二十回:SQL 错误 [3185] [HY000]: Can‘t find master key from keyring, please check in the xxx
  9. 转:所谓美好,就是摆脱了功利之心
  10. 211硕士 进大厂美团亲身经验分享-面试不算难(学累了进来看看)