js设计模式:中介者模式

作用:

通过一个公共的对象,去处理不同对象之间的消息传递。

就好比两个用户用微信聊天,微信就是中介者,负责两个人消息的接收与分发。

示例:

          const Weixin = {msgList:[],//添加用户addUser(user){this.msgList.push(user)},//转发消息transmit(msgId,msg,name){this.msgList.find(item=>item.name === name).getMsg(msgId,msg,name)}}class User{constructor(name){this.name = name//下载微信this.weixin = Weixin//注册微信this.weixin.addUser(this)}//发送消息sendMsg(msgId,msg){this.weixin.transmit(msgId,msg,this.name)}//接受消息getMsg(msgId,msg,name){console.log(`消息号:${msgId}------内容:${name}:${msg}`)}}//构建微信用户const wjt = new User('王惊涛')const xiaoma = new User('小马')wjt.sendMsg('wjtmsg1','做我对象吧')xiaoma.sendMsg('xiaomamsg1','好的,狗子')wjt.sendMsg('wjtmsg2','我不是狗子')xiaoma.sendMsg('xiaomamsg2','不,你就是')//先构建两个实例对象,构建实例对象的时候,就直接给两个人注册了微信//微信作为交流的媒介可以存储和转发收到的消息//wjt发送的消息被微信进行了转发,显示在了公屏上//mashi发送的消息也同样如此

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/475331.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go redis

go redis 快速入门 安装: go get github.com/redis/go-redis/v9然后创建客户端: package mainimport "github.com/redis/go-redis/v9"func main() {rdb : redis.NewClient(&redis.Options{Addr: "47.109.87.142:6379",Pa…

vcruntime140.dll文件下载的多种方案分享,最新下载安装方法解析

安装或运行软件时常遇到缺失系统文件的相关问题,一个典型的例子是vcruntime140.dll​丢失错误,这种情况经常发生在运行那些基于Visual Studio 2015开发的应用上。缺乏这个文件的提示可能会严重拖慢程序的响应速度,并有可能阻碍用户使用受影响…

spring boot自动装配

第一步需要在pom.xml文件指定需要导入的坐标 要是没有自动提示需要检查maven有没有 实现代码 /*springboot第三方自动配置实现方法 * 什么是自动配置 自动配置就是springboot启动自动加载的类不需要在手动的控制反转自动的加入bean中 * * *//*第一种方案包扫描 不推荐因为繁琐…

sensitive-word-admin v1.3.0 发布 如何支持敏感词控台分布式部署?

拓展阅读 sensitive-word-admin v1.3.0 发布 如何支持分布式部署? sensitive-word-admin 敏感词控台 v1.2.0 版本开源 sensitive-word 基于 DFA 算法实现的高性能敏感词工具介绍 更多技术交流 业务背景 如果我们的敏感词部署之后,不会变化,那…

6.s081 学习实验记录(十)file system

文章目录 一、Large files简介提示实验代码实验结果 二、Symbolic links简介提示实验代码实验结果 首先切换到 fs 分支 $ git fetch$ git checkout fs$ make clean 一、Large files 简介 该实验需要我们增大xv6文件的最大大小,目前xv6的最大文件大小为 268个块&…

Postman轻松签名,让SHA256withRSA保驾护航!

前言 在接口测试中,我们经常需要对请求进行签名,以保证数据的安全性。而SHA256withRSA是一种较为常见的签名算法,它可以使用私钥对数据进行签名,使用公钥进行验签。 但是,实现该算法签名可能会涉及到一些繁琐的操作&…

嵌入式 day23

链接命令 建立链接文件:ln 命令 命令名称:ln 命令所在路径:/bin/ln 执行权限:所有用户 语法:ln -s [原文件] [目标文件] -s 创建软链接 功能描述:生成链接文件 范例&#xff1…

【GPT-2】论文解读:Language Models are Unsupervised Multitask Learners

文章目录 介绍zero-shot learning 零样本学习 方法数据Input Representation 结果 论文:Language Models are Unsupervised Multitask Learners 作者:Alec Radford, Jeff Wu, Rewon Child, D. Luan, Dario Amodei, I. Sutskever 时间:2019 介…

Java集合篇之set,面试官:请说一说HashSet、LinkedHashSet、TreeSet的区别?

写在开头 Java的集合世界中主要由List,Set,Queue,Map构成,我们在之前的博文中已经学习了List,接下来我们继续学习Set集合。 Set特点:存取无序,不可以存放重复的元素,不可以用下标对…

Sentinel注解@SentinelResource详解

Sentinel注解SentinelResource详解 熔断 针对访问超过限制【sentinel中配置的限制】的资源,通过java代码配置,返回一个自定义的结果,需要用到 SentinelResource 注解的 blockHandlerClass 和 blockHandler 属性。 blockHandlerClass&#…

Electron实战之进程间通信

进程间通信(IPC)并非仅限于 Electron,而是源自甚至早于 Unix 诞生的概念。尽管“进程间通信”这个术语的确创造于何时并不清楚,但将数据传递给另一个程序或进程的理念可以追溯至 1964 年,当时 Douglas McIlroy 在 Unix…

review 10

整理磁盘操作的完整流程,如何接入虚拟机,是否成功识别,对磁盘分区工具的使用,格式化,挂载以及取消挂载、复习cp、mv和find指令 1:U盘接入虚拟机 在弹出窗口直接选择 虚拟机-可移动设备-找到u盘-连接 2&a…