中介者模式
中介者模式, 主角当然是中介者。那中介者是干什么的呢? 问得好!
中介者的引入就是为了“解耦”。
很多同学可能会碰到一下情况。 A在做某件事的时候要依赖于B; 反过来B在做某事的时候也要依赖于A。 那这样就形成了相互依赖, 耦合度高。 于是乎, 中介者的出场便可以解决这个问题。
在下面的场景中, colleague1完成某个操作需要colleague2的两次check; 而colleague2在做某个操作的时候又先要从colleague1那获取feedback。
先看看客户端代码
public abstract class AbstractColleague {protected AbstractMediator mediator;public AbstractColleague(AbstractMediator mediator) {this.mediator = mediator;}}public class ConcreteColleague1 extends AbstractColleague {public ConcreteColleague1(AbstractMediator mediator) {super(mediator);}public void doSomethingColleague1Special(){super.mediator.interact1();System.out.println("已通过验证,colleague1可以开始做了");}public void feedback() {System.out.println("反馈消息给colleague2");}}public class ConcreteColleague2 extends AbstractColleague {public ConcreteColleague2(AbstractMediator mediator) {super(mediator);}public void check() {System.out.println("check done");}public void doubleCheck() {System.out.println("double check done");}public void doSomethingColleague2Special() {super.mediator.interact2();System.out.println("已通过获得feedback,colleague2可以开始做了");}}