IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JS设计模式之中介者模式 -> 正文阅读

[JavaScript知识库]JS设计模式之中介者模式

一. 初识中介者模式

????????中介,第一反应,卧槽 ~ 卖房的帖子,别跑,这确实是一篇技术性文章!!!

????????中介者模式,顾名思义,确实是需要有一位中介,也就是中间人,来将其他对象联系在一起,从而达到了解除其他对象与对象之间紧密耦合的关系。

???????? 我们来举个例子看一下,马上要过年了,年后我们需要走访各个亲戚家,什么七大姑八大娘的,数不胜数,关系乱七八糟,平日里经常往来的没几个,有些甚至连对方叫什么都不知道就拜年要红包,聊天也及其的尴尬,这时,我们在想,要是有个中介来帮你走访亲戚,拜年要红包就好了,这样你就不在需要记住那么多的亲戚了,只需要通知中介一个人便可。这就是中介者模式的思想。让我们来用代码实现一下。

二. 代码实现

? ? ? ? 分析:我们通过封装了一个函数,将所有亲戚保存下来,这样就不用我们自己来记忆,只要通过暴露出来的方法,与中介沟通便可,通过?add 函数来添加我们与某个亲戚之间的关系,如果某一亲戚不幸夭折了我们可以通过 remove 将其从亲戚列表中删除,通过 payNewYear 来向亲戚 拜年要红包,如果还有什么需要需求我们可以自己添加。

        let mediator = function() {
            let relative = {};

            return {
                add( name, relation ){
                    relative[name] = relation;
                },
                remove( name ) {
                    delete relative[name];
                },
                payNewYear( name ) {
                    relative[name] & console.log(`${relative[name]}, 新年好!恭喜发财红包拿来!`);
                }
            }
        }();

        mediator.add('狗蛋','二表舅');
        mediator.add('铁柱','五大爷');
        mediator.payNewYear('狗蛋');
        mediator.payNewYear('铁柱');
        mediator.remove('铁柱');

三. 小结

? ? ? ? 中介者模式的思想很简单,但是实际开发中会有十分发杂的案例需要我们自己去实现。中介者模式是迎合迪米特法则的一种实现,其也叫最少知识原则,是指一个对象应该尽可能少的了解另外的对象,中介者模式中,对象之间不知道彼此的存在,只能通过中介者来影响对方。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:25:24  更:2022-01-17 11:27:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:31:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码