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('铁柱');

三. 小结

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员-石头山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值