中介者模式

2025年8月18日 | 阅读 3 分钟

中介者模式表示“定义一个对象,该对象封装了一组对象如何交互”。

我将通过考虑一个问题来解释中介者模式。当我们开始开发时,我们有一些类,这些类相互交互以产生结果。现在,考虑一下,当功能增加时,逻辑会变得更加复杂。然后会发生什么?我们添加了更多类,它们仍然相互交互,但是现在维护此代码变得非常困难。因此,中介者模式可以解决此问题。

中介者模式用于降低多个对象或类之间的通信复杂性。此模式提供了一个中介者类,该类通常处理不同类之间的所有通信,并通过松散耦合支持代码的易于维护性。


好处

  • 它解耦了类的数量。
  • 它简化了对象协议。
  • 它集中了控制。
  • 各个组件变得更简单,更易于处理,因为它们不需要相互传递消息。
  • 组件不需要包含处理相互通信的逻辑,因此,它们更通用。

用途

  • 它通常用于基于消息的系统,例如聊天应用程序。
  • 当对象集以复杂但定义明确的方式进行通信时。

中介者模式的 UML 图

Mediator Pattern

参与者

  • ApnaChatroom:- 定义了与参与者交互的接口。
  • ApnaChatroomImpl:- 实现了由 Chatroom 接口定义的操作。这些操作管理对象之间的交互:当一个参与者发送消息时,该消息将发送给其他参与者。
  • Participant:- 定义了参与聊天的用户的接口。
  • User1、User2、...UserN:- 实现 Participant 接口;参与者可以是参与聊天的许多用户。但是,每个 Participant 将仅保留对 ApnaChatRoom 的引用。

中介者模式的实现

步骤 1

创建一个 ApnaChatRoom 接口。

步骤 2

创建一个 ApnaChatRoomIml 类,该类将实现 ApnaChatRoom 接口,并且还将使用通过 Participant 接口参与聊天的参与者数量。

步骤 3

创建一个 Participant 抽象类。

步骤 4

创建一个 User1 类,该类将扩展 Participant 抽象类并将使用 ApnaChatRoom 接口。

步骤 5

创建一个 User2 类,该类将扩展 Participant 抽象类并将使用 ApnaChatRoom 接口。

步骤 6

创建一个 MediatorPatternDemo 类,该类将使用参与聊天的参与者。

输出

Mediator Pattern 
下一个主题备忘录设计模式