读书人

中介者形式

发布时间: 2012-06-27 14:20:08 作者: rapoo

中介者模式
中介者模式, 主角当然是中介者。那中介者是干什么的呢? 问得好!

中介者的引入就是为了“解耦”。
很多同学可能会碰到一下情况。 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可以开始做了");}}

读书人网 >软件架构设计

热点推荐