java设计模式-调停者模式的实现

java设计模式-调停者模式的实现

ID:21708101

大小:118.50 KB

页数:6页

时间:2018-10-24

java设计模式-调停者模式的实现_第1页
java设计模式-调停者模式的实现_第2页
java设计模式-调停者模式的实现_第3页
java设计模式-调停者模式的实现_第4页
java设计模式-调停者模式的实现_第5页
资源描述:

《java设计模式-调停者模式的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.意图:    调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散偶合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化为一对多的相互作用。调停者模式将对象的行为和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分开处理。2.类图:  3.原理:4.特征:   系统中有大量的对象,这些对象既会影响别的对象,又会被别的对象所影响,因此常常叫做同事(Colleague)对象。   

2、抽象调停者(Mediator)角色:定义出同事对象到调停者对象的接口,其中主要的方法是一个(或多个)事件方法。在某些情况下,这个抽象对象可以省略。   具体调停者(ConcreteMediator)角色:实现了抽象超类所声明的事件方法。具体调停者知晓所有的具体同事类,它从具体同事对象接收消息,向具体同事对象发出命令。   抽象同事类(Colleague)角色:定义出调停者到同事对象的接口。同事对象只知道调停者而不知道其余的同事对象。   具体同事对象角色:从抽象同事类继承,实现自己的职责。5.说明:   调停

3、者模式是迪米比特法则的一个具体运用。6.使用案例:   WTO是一个协调组织,各个贸易地区可以经由WTO组织进行协调。WTO扮演的正是调停者的角色。它取代了原来各个贸易地区自行进行相互协调和谈判的强耦合关系。各个贸易地区在加入WTO组织之前的贸易状态,如下图所示:       加入WTO之后的贸易关系,如下图所示:     7.代码://抽象同事类(Colleague)角色 Colleague.javapublicabstractclassColleague{    privateMediatormyMedi

4、ator;    /**     *Createcolleaguewhichknowsaboutsuppliedmediator     */    protectedColleague(Mediatormediator)    {        this.myMediator=mediator;    }    /**     *@returnmediatorthiscolleagueknowsabout     */    protectedMediatorgetMediator()    {      

5、  returnmyMediator;    }    /**     *行动方法,由子类实现,一个同事对象在得知其它对象状态有改变时,会执行此操作。     */    publicabstractvoidaction();    /**     *示意性的商业方法,调用此方法可以改变对象的内部状态     */    publicvoidchange()    {        myMediator.changed(this);    }}//ConcreteColleague1.java/***每个同事

6、对象仅知道调停者而不知道其它同事对象*/publicclassConcreteColleague1extendsColleague{    publicConcreteColleague1(Mediatormediator)    {        super(mediator);    }    publicvoidaction()    {          }}//ConcreteColleague2.java/***每个同事对象仅知道调停者而不知道其它同事对象*/publicclassConcrete

7、Colleague2extendsColleague{    publicConcreteColleague2(Mediatormediator)    {        super(mediator);    }    publicvoidaction()   {               }}//Mediator.javapublicinterfaceMediator{    /**     *事件方法,当自身的状态发生了变化时,一个同事对象可以     *调用这个事件方法来通知调停者,从而更新所有有关

8、的同事对象。     */    voidcolleagueChanged(Colleaguecolleague);}//ConcreteMediator.javapublicclassConcreteMediatorimplementsMediator{     privateConcreteColleague1aConcreteColleague1;    privateConcreteColl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。