设计模式:中介者模式
什么是中介者模式
中介者模式(Mediator Pattern),是为了“定义一个封装了对象间交互关系的对象”。这种方式避免了显示调用其他类,促进了类间的松耦合,并且使得类间交互关系本身可以单独修改。又叫调停模式。
一句话归纳
朋友圈:统一管理网状资源
代码
一说到中介,我们自然而然地会想起来“房地产中介”,毕竟多数的大学生毕业后都会从租房开始,就会和房地产中介打交道,学会毕业后的第一堂课,当然了,家境殷实,每个城市都有房子的除外……
房东通过中介把自己名下几百套房产都出租,租客通过中介找一个房子住,而中介手里会有很多房东和租客的资源。

适用性
以下场景我建议你考虑使用
N个对象之间产生了相互的依赖关系(N>2)。比如机场调度中心、MVC框架、媒体网关、中介服务。
多个对象有依赖关系,但是依赖的行为尚不确定或者有发生改变的可能,在这种情况下一般建议采用中介者模式,降低变更引起的风险扩散。
产品开发。一个明显的例子就是MVC框架,把中介者应用到产品中,可以提升产品的性能和扩展性,但是对项目开发就未必,因此项目是以交付投产为目标,而产品则是以稳定、高效、扩展为宗旨。
局限性
以下场景我建议你谨慎使用
中介者会庞大,变得复杂难以维护,同事类越多,中介者逻辑越复杂。
注意
为什么同事类要使用构造函数注入中介者,而中介者可以使用getter/setter方式注入同事类呢?这是因为同事类必须有中介者,而中介者却可以只有部分同事类。
写在最后
好兄弟可以点赞并关注我的公众号“javaAnswer”,全部都是干货。
