`
chendw_hz
  • 浏览: 10676 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

调停者,观察者,门面模式

阅读更多

调停者(Mediator)模式

调停者模式是常常被滥用的几个模式之一,在下列情况下不应当使用调停者模式。

1)不应当在责任划分混乱的时候使用

2)不应当对“数据类”和“方法类”使用

         初级设计师常常会设计出这样的一种系统:让一系列类只含有数据,另一些类只含有方法。比如,描述一个客户时,这些设计师首先设计出一个叫做客户数据的类,只含有客户数据;另外再设计一个类叫做“管理类”,含有操作客户以及此客户购买公司产品、付账的方法。管理类自然会涉及到其他的类,诸如产品数据类、订单数据类、付账数据类等。如此一来,“管理类”就变成一个操作所有的数据类的方法类,这是很没有道理的设计,但是有些设计师错误的把这叫做“调停者模式”的应用。

3)正确理解封装

封装首先是行为,以及行为所涉及的状态的封装。行为与状态是不应当分割开来的。调停者模式的用途是管理很多的对象的相互作用,以便使这些对象可以专注于自身的行为,而独立于其他的对象。

三、调停者模式与其他模式的关系 

门面模式

门面模式和调停者模式很相似,两者均用来给出一个低耦合度的系统。门面模式为一个子系统提供一个简单的接口,其中消息的传送是单方向的,因为门面模式的客户端只通过门面类向子系统发出消息,而不是相反的情况。

观察者模式

调停者模式与观察者模式是功能相类似的设计模式,它们之间是相互竞争的关系。换言之,使用了其中一者往往意味着放弃另一者。观察者模式通过引入观察者对象和主题对象来达到将通信分散化的目的;而调停者模式则封装了对象之间的通信,从而将通信集中到一个个中介对象中。

分享到:
评论

相关推荐

    深入浅出java设计模式(高清中文PDF)

    文件类型为PDF文件,此文档对20多种...调停者模式 17.备忘录模式 18.观察者模式 19.策略模式 20.状态模式 21.模板模式 22.访问者模式 最后,还附带一个关于“分派”的章节!为了读者对访问者模式有更好的理解。

    深入浅出设计模式

    深入浅出设计模式,比head first更易懂,共讲解了22种设计模式: 工厂模式 单例模式 建造模式 原型模式 适配器模式 桥梁模式 ...调停者模式 备忘录模式 观察者模式 策略模式 状态模式 模板模式 访问者模式

    java和设计模式ppt教程

    java和设计模式ppt包含工厂模式、建造模式、原始模型模式、单例模式、结构模式、适配器、桥梁模式、合成模式、装饰模式、门面模式、享元模式、代理模式、行为模式、解释器模式、迭代子模式、调停者模式、备忘录模式...

    源码:阎宏设计模式光盘

    com.javapatterns.mediator 调停者模式 com.javapatterns.memento 备忘录模式 com.javapatterns.multilingual 专题 com.javapatterns.observer 观察者模式 com.javapatterns.observerawt 专题:观察者模式与AWT...

    design-patterns:设计模式

    设计模式之馋 参考资料 六大原则 (单一职责原则) 原则 替换原则(liskov替换原理) 倒置原则( Principle) ...观察者模式(观察者模式) 状态模式 策略模式 模板方法模式(模板方法模式) 访问者模式(访客模式)

    C#23种设计模式_示例源代码及PDF

    观察者模式: 让多个观察者对象同时监听某一个 观察者模式 观察者模式定义了一种一队多的依赖关系, 主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更 新自己。 20、STATE —...

    java26个设计模式

    工厂模式Factory 原始...不变Immutable 策略Strategy 模版Template 观察者Observer 命令Command 备忘录Memento 状态State 访问者Visitor 解释器Interpreter 调停者Mediator Iterator 责任链Chain of Responsibility

    Delphi 深度探索(第二版)〖含随书光盘源代码〗

    6.3.4 观察者模式(observer模式) 6.3.5 命令模式(command模式) 6.3.6 备忘录模式(memento模式) 6.3.7 迭代子模式(iterator模式) 6.3.8 访问者模式(visitor模式) 6.3.9 调停者模式(mediator模式) ...

    java面试800题

    template模板方法模式、memento备忘录模式、observer观察者模式、command命令模式、state状态模式、strategy策略模式、mediator调停者模式、interpreter解释器模式、visitor访问者模式、chain of responsibility责任...

    java 面试题 总结

    Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method...

    超级有影响力霸气的Java面试题大全文档

    Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method...

Global site tag (gtag.js) - Google Analytics