/**
* 中介者模式
* @author TMAC-J
* 研究了这么多设计模式,觉得无非就是几点:
* 1.若两个类有耦合关系,设立一个中间类,处理两个类的关系,把两个类的耦合降低
* 2.面向接口
* 3.在设计时就应当想到如果以后有修改,不要去修改原有类,而要设计成能新添加类去做新功能的架构
* 中介者模式用于两个相互通信的类,相当于一个中间层
* 这里模拟A变量始终是B变量的10倍
*/
public class MediatorPattern {
interface IMediator{
void aToB(AColleague a,AColleague b);
void bToA(AColleague b,AColleague a);
}
abstract class AColleague{
private int variable;
private IMediator mediator;
public int getVariable() {
return variable;
}
public IMediator getMediator() {
return mediator;
}
public void setMediator(IMediator mediator) {
this.mediator = mediator;
}
//这里可以写一个回调,当variable改变时,回调那个方法,我太懒就不写了
public void setVariable(int variable) {
this.variable = variable;
}
}
public class Mediator implements IMediator{
@Override
public void aToB(AColleague a, AColleague b) {
b.setVariable(a.getVariable()*10);
}
@Override
public void bToA(AColleague b, AColleague a) {
a.setVariable(b.getVariable()*10);
}
}
}