web前端中中介者模式的示例分析
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,这篇文章将为大家详细讲解有关web前端中中介者模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。中介者模式(Mediator Pattern)在中介者模式
千家信息网最后更新 2025年01月28日web前端中中介者模式的示例分析
这篇文章将为大家详细讲解有关web前端中中介者模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
中介者模式(Mediator Pattern)
在中介者模式中,中介者(Mediator)包装了一系列对象相互作用的方式,使得这些对象不必直接相互作用,而是由中介者协调它们之间的交互,从而使它们可以松散偶合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用,保证这些作用可以彼此独立的变化。
中介者模式和观察者模式有一定的相似性,都是一对多的关系,也都是集中式通信,不同的是中介者模式是处理同级对象之间的交互,而观察者模式是处理Observer和Subject之间的交互。中介者模式有些像婚恋中介,相亲对象刚开始并不能直接交流,而是要通过中介去筛选匹配再决定谁和谁见面。
场景
例如购物车需求,存在商品选择表单、颜色选择表单、购买数量表单等等,都会触发change事件,那么可以通过中介者来转发处理这些事件,实现各个事件间的解耦,仅仅维护中介者对象即可。
var goods = { //手机库存 'red|32G': 3, 'red|64G': 1, 'blue|32G': 7, 'blue|32G': 6,};//中介者var mediator = (function() { var colorSelect = document.getElementById('colorSelect'); var memorySelect = document.getElementById('memorySelect'); var numSelect = document.getElementById('numSelect'); return { changed: function(obj) { switch(obj){ case colorSelect: //TODO break; case memorySelect: //TODO break; case numSelect: //TODO break; } } }})();colorSelect.onchange = function() { mediator.changed(this);};memorySelect.onchange = function() { mediator.changed(this);};numSelect.onchange = function() { mediator.changed(this);};
聊天室里
聊天室成员类:
function Member(name) { this.name = name; this.chatroom = null;}Member.prototype = { // 发送消息 send: function (message, toMember) { this.chatroom.send(message, this, toMember); }, // 接收消息 receive: function (message, fromMember) { console.log(`${fromMember.name} to ${this.name}: ${message}`); }}
聊天室类:
function Chatroom() { this.members = {};}Chatroom.prototype = { // 增加成员 addMember: function (member) { this.members[member.name] = member; member.chatroom = this; }, // 发送消息 send: function (message, fromMember, toMember) { toMember.receive(message, fromMember); }}
测试一下:
const chatroom = new Chatroom();const bruce = new Member('bruce');const frank = new Member('frank');chatroom.addMember(bruce);chatroom.addMember(frank);bruce.send('Hey frank', frank);//输出:bruce to frank: hello frank
优点
使各对象之间耦合松散,而且可以独立地改变它们之间的交互
中介者和对象一对多的关系取代了对象之间的网状多对多的关系
如果对象之间的复杂耦合度导致维护很困难,而且耦合度随项目变化增速很快,就需要中介者重构代码
缺点
系统中会新增一个中介者对象,因为对象之间交互的复杂性,转移成了中介者对象的复杂性,使得中介者对象经常是巨大的。中介 者对象自身往往就是一个难以维护的对象。
关于"web前端中中介者模式的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
中介
中介者
对象
之间
模式
作用
复杂
事件
消息
篇文章
聊天室
表单
处理
耦合
前端
示例
分析
松散
复杂性
成员
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
北京hp服务器阵列卡安装服务器
如何快速查找我的世界服务器
基因数据库检索
重庆八戒工程网络技术有限公司
315晚会演示网络安全
查看数据库的监听服务
数据库概念设计规范
网络技术应用指导思想
long支持多大的数据库
我的世界服务器代码怎么打
网络安全宣传小视频小学生
广州千面互联网科技有限公司
丰都实验小学网络安全
系统集成和软件开发合同
做一个网络安全员
中国网络技术势力
游戏服务器部署cdn
浙江拓道网络技术有限公司
数据库性能参数
网络技术对动画的影响
网络安全美篇内容
企业网络安全怎么规避比较好
大学哪些专业学习软件开发
快消品软件开发服务
沈阳hp服务器
四川惠普服务器虚拟化优化
服务器自检
计算机里能装两个数据库吗
中国网络安全公司市值
健康检测软件开发初期