二十六、中介者模式

1. 何为中介者模式

中介者模式:用一个对象来封装一系列对象的交互方式。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

中介者模式用于定义一个集中的场所,对象间的交互可以在一个中介者对象中处理。其他对象不必彼此交互,因此减少了他们之间的依赖关系。图1-1表示了中介者模式各个模块之间的关系:

图1-1 中介者模式

抽象的Mediator定义了用于同Colleague交互的一般行为。典型的同事 (colleague)是以明确定义的方式进行相互通信的对象,并且彼此紧密依存。ConcreteMediator为ConcreteColleague定义了更加具体的行为,因此可以子类化Mediator,把各种Colleague交互算法应用到相同或不同的Colleague类型。如果应用程序只需要一个中介者,有时抽象的Mediator可以省略。

2. 何时使用中介者模式

以下情形,自然会考虑使用这一模式:

  • 对象间的交互虽然定义明确然而非常复杂,导致一组对象彼此相互依赖而且难以理解;
  • 因为对象引用了许多其他对象并与其通讯,导致对象难以复用;
  • 想要定制一个分布在多个类中的逻辑或行为,又不想生成太多子类。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容