第19章:中介者模式-协调多个对象之间的交互
定义:
中介者模式(Mediator Pattern):用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
同事对象之间
使用中介者
结构:
代码实现:
//抽象中介者
abstract class Mediator {
protected ArrayList<Colleague> colleagues; //用于存储同事对象
//注册方法,用于增加同事对象
public void register(Colleague colleague) {
colleagues.add(colleague);
}
//声明抽象的业务方法
public abstract void operation();
}
//具体中介者
class ConcreteMediator extends Mediator {
//实现业务方法,封装同事之间的调用
public void operation() {
//......
((Colleague) (colleagues.get(0))).method1(); //通过中介者调用同事类的方法
//......
}
}
//抽象同事类
abstract class Colleague {
protected Mediator mediator; //维持一个抽象中介者的引用
public Colleague(Mediator mediator) {
this.mediator = mediator;
}
public abstract void method1(); //声明自身方法,处理自己的行为
//定义依赖方法,与中介者进行通信
public void method2() {
mediator.operation();
}
}
//具体同事类
class ConcreteColleague extends Colleague {
public ConcreteColleague(Mediator mediator) {
super(mediator);
}
//实现自身方法
public void method1() {
//......
}
}
应用实例:
CRM系统,客户信息管理窗口
package wgg;
//按钮类
class Button {
private List list;
private ComboBox cb;
private TextBox tb;
//......
//界面组件的交互
public void change() {
list.update();
cb.