设计模式(Java)—Meditor模式

Meditor的意思是“仲裁者”“中介者”。一方面,当发生麻烦事的时候,通知仲裁者;当发生设计全体组员的事情时,也通知仲裁者。当仲裁者下达指示时,组员会立即执行。团队成员之间不再互相沟通并私自做出决定,而是发生任何事情都要向仲裁者报告。另一方面,仲裁者站在整个团队的角度对组员上报的事情做出决定。这就是Mediator模式。

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

对话框的使用方法如下:

  • 可以选择作为游客或是作为用户登录。
  • 作为用户登录时,需要输入用户名和密码。
  • 点击OK按钮可以登录,点击Cancel按钮可以取消登录。

登录场景控件限制:

  • 如果选择作为游客访问,那么禁用用户名输入框和密码输入框,使用户无法输入。
  • 如果选择作为用户登录,那么启用用户名输入框和密码输入框,使用户可以输入。
  • 如果在用户名输入框一个字符都没有输入,那么禁用密码输入框,使用户无法输入密码。
  • 如果在用户名输入框中输入了至少一个字符,那么启用密码输入框,使用户可以输入密码(当然,如果作为游客访问,那么密码框依然是禁用状态)。
  • 只有在用户名输入框和密码输入框都至少输入一个字符后,OK按钮才处于启用状态,可以被按下(当然如果作为游客访问,那么OK按钮总是处于启用状态)。
  • Cancel按钮总是处于启用状态,任何时候都可以按下该按钮。

示例程序类图
在这里插入图片描述

Mediator接口
该接口是表示仲裁者的接口,createColleagues方法用于生成Mediator要管理的组员。该示例中这些组员是文本框或者按钮这些控件。

package Mediator;

//仲裁者模式中的仲裁者接口
public interface Meditator {
	public abstract void createColleagues();
	public abstract void colleaguesChanges();

}

Colleagues接口
该接口是表示向仲裁者进行报告的组员的接口,LoginFrame类(它实现了Mediator接口)首先会调用setMediator方法。该方法的作用是告知组员“我是仲裁者,有事请报告我”。向该方法中传递的参数是仲裁者的实例。之后在需要向仲裁者报告时会用到该实例。

package Mediator;

//仲裁者模式中的同事接口
public interface Colleagues {
	public abstract void setMeditaor(Meditator 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值