定义
用一个中介对象封装一系列对象交互,使各个对象不必显式地相互作用,从而使其耦合松散
结构和实现
结构
中介者模式在我看来就是一种星形拓扑结构,所有角色通过中介者实现协作
-
抽象中介者:定义了各个同事之间交互需要的方法。
-
具体中介者:需要了解维护各个同事对象,并且负责协调各个具体同事之间的交互。
-
抽象同事类:约束具体同事类的类型、并且实现一些具体同事类之间的公共方法。
-
具体同事类:实现自己的业务。
代码实现
略过
模式特点
优点:将原本一对多的依赖变成了一对一的依赖,同时,角色间耦合降低
缺点:中介者由于要协调各个角色,逻辑变得过于复杂
使用场景
当有多个对象彼此间相互交互的时候,自然就会想到对象间的耦合度过高,解决办法就是封装对象间的交互行为,因此就能想到中介者模式就是干这行的。