Java设计模式学习记录-中介者模式

时间:2021-01-20 04:05:44

前言

中介者模式听名字就能想到也是一种为了解决耦合度的设计模式,其实中介者模式在结构上与观察者、命令模式十分相像;而应用目的又与结构模式“门面模式”有些相似。但区别于命令模式的是大多数中介者角色对于客户程序是透明的。当然造成这种区别的原因是由于他们要达到的目的不同。

中介者模式

概念介绍

中介者模式是指用一个中介对象来封装一系列的对象交互。中介者使个对象不需要显示的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。简单地说,将原来两个直接引用或者依赖的对象拆开,在中间加入一个“中介”对象,使得两头的对象分别与“中介”对象引用或者依赖。

例如下面这个结构,如果每个元素两两之间要产生联系,关系就会变得错综复杂。

Java设计模式学习记录-中介者模式

但是加了中介者之后,相互之间就可以解耦了。变成如下的关系结构。

Java设计模式学习记录-中介者模式

举例

和二老纪都是朝廷大臣,但是互相看不顺眼,在皇上面前和和气气,背地里各自互相参对方。当然有时候皇上颁布旨意时让两个大臣一起合作去完成任务,他们也会相互合作的。和二老纪都想收拾对方,但是奈何双方官职不相上下,所以当想收拾对方时就会通过皇上来实现,这个时候我们就当皇上理解为中介者(感觉有点牵强,就这样吧