16、Mediator 仲裁者模式
阿新 • • 發佈:2020-08-06
只有一個仲裁者
Mediator 模式
組員向仲裁者報告,仲裁者向組員下達指示,組員之間不在相互詢問和相互指示。
要調整多個對象之間的關系時,就需要用到 Mediator 模式。將邏輯處理交給仲裁者執行。
示例程序
名字 | 說明 | 角色 |
---|---|---|
Mediator | 定義“仲裁者”的接口的接口 | Mediator |
Colleague | 定義“組員”的接口的接口 | Colleague |
ColleagueButton | 表示按鈕的類。它實現了Colleague接口 | ConcreteColleague |
ColleagueTextField | 表示文本輸入框的類。它實現了Colleague接口 |
ConcreteColleague |
ColleagueCheckbox | 表示單選框的類。它實現了Colleague接口 | ConcreteColleague |
LoginFrame | 表示登錄對話框的類。它實現了Mediator接口 | ConcreteMediator |
Main | 測試程序行為的類 |
Mediator.java
packagemediator;
publicinterfaceMediator{
publicabstractvoidcreateColleague();
publicabstractvoidcolleagueChanged();
}
Colleague.java
packagemediator;
publicinterfaceColleague{
publicabstractvoidsetMediator(Mediatormediator);
publicabstractvoidsetColleagueEnabled(booleanenabled);
}
ColleagueButton.java
packagemediator;
importjava.awt.*;
publicclassColleagueButtonextendsButtonimplementsColleague{
privateMediatormediator;
publicColleagueButton(Stringcaption){
super(caption);
}
publicvoidsetMediator(Mediato