本文介绍了GoF中的中介者模式。
模式推演
当多个对象之间需要协调沟通时:
例如,想要闹钟在固定时间会通知咖啡壶开始煮咖啡,但是周末又不需要,如果是丢垃圾的日子,又需要把闹钟的时刻提前,在洗澡前把喷头关闭15分钟等。
将这些复杂的沟通逻辑封装
创建一个中介者对象,专门封装这些复杂的沟通逻辑,让各个对象只跟中介者交互,减少对象之间的互相依赖关系。
定义
中介者模式(Mediator Pattern):集中相关对象之间复杂的沟通和控制方式。
用途:
- 常用于协调相关的GUI组件。
优点:
- 通过将对象彼此解耦,可以增加对象的复用性;
- 通过将控制逻辑集中,可以简化系统维护;
- 可以让对象之间所传递的消息变得简单而且大幅减少。
缺点:
- 如果设计不当,中介者对象本身会变得过于复杂。