web前端中中介者模式的示例分析
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章将为大家详细讲解有关web前端中中介者模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。中介者模式(Mediator Pattern)在中介者模式
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
工商杭州软件开发中心
安全接入服务器ip怎么设置
数据库怎么清楚数据
网络安全应该怎么发展
九杞网络技术公司
2020年网络安全周视频
网络安全是哪个etf
数据库运维人员
网络安全测试论文
c语言数据库一般用什么
软件开发项目管理的特点
浙江时间同步服务器设置云空间
详解数据库事务的传播性
我的世界服务器方块移动指令
网络安全主题绘画三年级
嵌入式系统软件开发论文
扬州网络安全与信息化委员会
小学网络安全主题班会手抄报
美创数据库安全系统
诺顿网络安全专业版 破解
能源互联网的核心科技
学校管理软件开发公司
软件开发工程师面试的话术
管家婆连接远程数据库
数据库怎么编写vfp
user服务器熔断什么意思
杭州睿趣网络技术公司
不小心把数据库删除了
曲阜网络安全培训
数据库上锁和释放锁