一. 初识中介者模式
中介,第一反应,卧槽 ~ 卖房的帖子,别跑,这确实是一篇技术性文章!!!
中介者模式,顾名思义,确实是需要有一位中介,也就是中间人,来将其他对象联系在一起,从而达到了解除其他对象与对象之间紧密耦合的关系。
我们来举个例子看一下,马上要过年了,年后我们需要走访各个亲戚家,什么七大姑八大娘的,数不胜数,关系乱七八糟,平日里经常往来的没几个,有些甚至连对方叫什么都不知道就拜年要红包,聊天也及其的尴尬,这时,我们在想,要是有个中介来帮你走访亲戚,拜年要红包就好了,这样你就不在需要记住那么多的亲戚了,只需要通知中介一个人便可。这就是中介者模式的思想。让我们来用代码实现一下。
二. 代码实现
分析:我们通过封装了一个函数,将所有亲戚保存下来,这样就不用我们自己来记忆,只要通过暴露出来的方法,与中介沟通便可,通过 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('铁柱');
三. 小结
中介者模式的思想很简单,但是实际开发中会有十分发杂的案例需要我们自己去实现。中介者模式是迎合迪米特法则的一种实现,其也叫最少知识原则,是指一个对象应该尽可能少的了解另外的对象,中介者模式中,对象之间不知道彼此的存在,只能通过中介者来影响对方。