组员向仲裁者报告,仲裁者向组员下达指示。组员之间不再相互询问和相互指示。

示例

一个GUI应用程序,它展示了一个登录对话框,用户在其中输入正确的用户名和密码后可以登录。

  • 可以选择作为游客访问(Guest)或是作为用户登录(Login)
  • 作为用户登录时,需要输入正确的用户名(Username)和密码(Password)
  • 点击OK按钮可以登录,点击Cancel按钮可以取消登录

类图

时序图

Mediator接口

Colleague接口

ColleagueButton类

ColleagueTextField类

ColleagueCheckbox类

LoginFrame类

Main类

运行结果

登场角色

Mediator(仲裁者、中介者)

Mediator角色负责定义与Colleague角色进行通信和做出决定的接口(API)。在示例程序中,由Mediator接口扮演此角色。

ConcreteMediator(具体的仲裁者、中介者)

ConcreteMediator角色负责实现Mediator角色的接口(API),负责实际做出决定。在示例程序中,由LoginFrame类扮演此角色。

Colleague(同事)

Colleague角色负责定义与Mediator角色进行通信的接口(API)。在示例程序中,由Colleague接口扮演此角色。

ConcreteColleague(具体的同事)

ConcreteColleague角色负责实现Colleague角色的接口(API)。在示例程序中,由ColleagueButton类、ColleagueTextField类和ColleagueCheckbox类扮演此角色。

类图

原文:大专栏  【图解设计模式】Mediator模式


01-22 01:17