只有一个仲裁者
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