中介者设计模式
中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互,使代码易于维护。
它属于行为型模式。
比如 MVC 模式,C(Controller 控制器)是 M(Model 模型)和 V(View 视图)的中介者,在前后端交互时起 到了中间人的作用
使用场景:“迪米特法则”,如果两个类之间不必彼此直接通信(意思是没有直接关联),那么这两个类就不应该发生直接的相互作用(不能直接调用)。如果其中一个类需要调用另一个类的某个方法的话,可以通过第三者来转发这个调用。也就是中介者。
中介者模式的注意事项和细节
- 多个类相互耦合,会形成网状结构, 使用中介者模式将网状结构分离为星型结构,进行解耦
- 减少类间依赖,降低了耦合,符合迪米特原则
- 中介者承担了较多的责任,一旦中介者出现了问题,整个系统就会受到影响
- 如果设计不当,中介者对象本身变得过于复杂,这点在实际使用时,要特别注意