16、Mediator 仲裁者模式
只有一个仲裁者
Mediator 模式
组员向仲裁者报告,仲裁者向组员下达指示,组员之间不在相互询问和相互指示。
要调整多个对象之间的关系时,就需要用到 Mediator 模式。将逻辑处理交给仲裁者执行。
示例程序
名字 | 说明 | 角色 |
---|---|---|
Mediator | 定义“仲裁者”的接口的接口 | Mediator |
Colleague | 定义“组员”的接口的接口 | Colleague |
ColleagueButton | 表示按钮的类。它实现了 Colleague 接口 | ConcreteColleague |
ColleagueTextField | 表示文本输入框的类。它实现了 Colleague 接口 | ConcreteColleague |
ColleagueCheckbox | 表示单选框的类。它实现了 Colleague 接口 | ConcreteColleague |
LoginFrame | 表示登录对话框的类。它实现了 Mediator 接口 | ConcreteMediator |
Main | 测试程序行为的类 |
Mediator.java
package mediator;
public interface Mediator {
public abstract void createColleague();
public abstract void colleagueChanged();
}
Colleague.java
package mediator;
public interface Colleague {
public abstract void setMediator(Mediator mediator);
public abstract void setColleagueEnabled(boolean enabled);
}
ColleagueButton.java
package mediator;
import java.awt.*;
public class ColleagueButton extends Button implements Colleague {
private Mediator mediator;
public ColleagueButton(String caption) {
super(caption);
}
public void setMediator(Mediat