mediator中介模式.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mediator中介模式

中介模式 (Mediator) ——对象行为型模式 陈巧红(2110808017) Contents 实例1——打麻将 实例2——房屋租赁 什么是中介模式 为什么需要中介模式 中国加入WTO Mediator模式角色 中介者模式结构图 中介模式示意性实现 中介模式示意性实现 中介模式示意性实现 中介模式的时序 中介模式的实现 具体同事对象的创建 在很多情况下,这些具体同事对象均是由一个对象创建的,这个对象也可以把中介者类作为内部类,使系统更加强壮。 具体中介者对象的内部状态 一般而言,可以选择同事对象维护所有的具体中介者对象的内部状态,也可以让每个具体中介者对象自己维护自己的内部状态。 是否使用抽象中介者 如果非常肯定具体中介者角色只有一个的话,可以省略抽象中介者类。如果同时存在多个具体中介者角色的话,就有可能会在这些具体中介者角色中发现共同的代码。这样一来,就需要一个共同的类型 ,并将重复的代码移动到超类中去。 同事类如何与中介者通信 同事对象可以将它们自身作为参量传给中介者对象。 应用实例——婚姻中介所 Design Patterns By Example in Java- Mediator Pattern 中介模式优点和缺点 优点: 适当使用可以避免同事对象间的过度耦合。使得中介者类与同事类可以相对独立演化。 简化了对象协议。多对多的相互作用转化为一对多的相互作用,使得对象之间的关系更加易于维护和理解. 将对象的行为和协作抽象化。把对象在小尺度的行为与其他对象的相互作用分开处理。 集中了控制? 中介模式优点和缺点 缺点: 中介模式降低了同事对象的复杂性,代价是增加了中介类的复杂性。很多情况下甚至比不设置中介更差。 中介类包含了各具体同事类的关系协调代码,这种代码常常不能复用。因此,具体同事类的复用是以中介者类的不可复用为代价的。 显然,为同事对象提供了可扩展性,而不是中介对象。所提供的可扩展性是一种(向同事对象)倾斜的可扩展性。 与中介模式有关的模式 * LOGO * 什么是中介模式? 中介模式应用实例 中介模式优缺点 相关模式 Mediator 中介模式结构 A B C D Z 1 2 3 4 n 求租 出租 租 赁 中 介   对象的行为模式,又称调停者模式。 GOF给中介者模式下的定义是:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 在中介模式中,所有的成员对象都可以协调工作,但是又不直接相互管理。这些对象都与一个处于中心地位的中介者对象发生紧密的关系,由这个中介者对象进行协调工作。这个协调者对象叫做中介者(Mediator),而中介者所协调的成员对象叫做同事(Colleagues)对象。 网状结构——星形结构(以中介者为中心) A、B、C.......:同事对象 过 度 耦 合 结 构 稳 定 WTO:强关联——较松散的耦合关系 过度耦合系统——各贸易地区自行进行相互协调和谈判 定义出中介到同事对象的接口。同事对象只知道中介者而不知道其余的同事对象。 ? 从抽象同事类继承而来。 每一个Concrete Colleague类都知道它的Mediator对象。而不知道其余的同事对象 。 抽象中介者(Mediator) 具体中介者(ConcreteMediator) 抽象同事类(Colleague) 定义与同事对象通信的接口,主要的方法是一个(或者多个)事件方法。 从抽象中介继承,实现了抽象超类所声明的事件方法。 知道所有的具体同事类,从具体同事对象接收消息,向具体同事对象发出命令。 具体同事类(Concrete Colleague) Mediator +colleagueChanged void +main void Colleague +Colleague +action void +change void mediator Mediator +colleagueChanged void +createConreteMediator void colleague1 Colleague1 colleague2 Colleague2 ConcreteMediator Colleague1 +Colleague1 +action void Colleague2 +Colleague2 +action void abstract class Mediator { public abstract void colleagueChanged(Colleague c); public static void ma

文档评论(0)

celkhn0303 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档