首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

中介者形式

2012-06-27 
中介者模式中介者模式, 主角当然是中介者。那中介者是干什么的呢? 问得好!中介者的引入就是为了“解耦”。很多

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

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

热点排行