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

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

 
阅读更多

调停者(Mediator)模式

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

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

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

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

3)正确理解封装

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

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

门面模式

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

观察者模式

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

分享到:
评论

相关推荐

    java和设计模式ppt教程

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

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

    所涉及的设计模式包括工厂模式、单例模式、建造模式、原型模式、适配器模式、桥梁模式、组合模式、装饰模式、门面模式、享元模式、代理模式、责任链模式、命令模式、解释器模式、迭代器模式、调停者模式、备忘录模式...

    Java中23种设计模式详解

    观察者模式定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。这种模式使得对象状态可以灵活地变化。 17. 原始模型模式(Prototype) 原始模型模式用...

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

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

    design-patterns:设计模式

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

    Java课堂:Java开发下的设计模式简单说明

    16. 观察者模式(Observer):观察者模式定义了一对多的关系,当一个对象的状态改变时,所有依赖它的对象都会得到通知并自动更新。 17. 原型模式(Prototype):原型模式使用原型实例创建新对象,通过复制已有对象...

    设计模式文档

    这部分则关注于类的行为,如职责链模式、命令模式、解释器模式、迭代器模式、调停者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式等,主要目的是定义对象之间怎样交互以及怎样分配...

    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 23种设计模式

    16. 观察者模式(Observer):定义对象之间的一对多依赖关系,当一个对象状态改变时,所有依赖它的对象都会得到通知并自动更新。 17. 原型模式(Prototype):通过复制原型对象来创建新对象,避免重复的构造过程。 ...

    java的23种设计模式

    - **模式名称**:调停者模式 - **问题**:多个对象之间的交互过于复杂。 - **解决方案**:引入一个中介对象来协调这些对象之间的交互。 - **效果**:降低了对象之间的耦合度,提高了系统的可维护性。 15. **...

    设计模式总结笔记设计模式总结笔记

    - **示例**:在新闻订阅系统中,可以使用观察者模式来实现新闻更新时通知所有订阅者。 **15. 责任链模式(Chain of Responsibility)** - **定义**:使多个对象都有机会处理请求,从而避免请求的发送者和接收者...

    25种java模式图文代码参考手册.pdf

    16. 观察者模式:定义了一对多的依赖关系,当一个对象的状态改变时,所有依赖它的对象都会得到通知并自动更新。 17. 原型模式:通过复制已有对象创建新对象,提供了创建新对象的简便方式,避免了重复代码和冗余初始...

    J2EE的23种设计模式

    19. **观察者模式**:定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 20. **状态模式**:允许对象在其内部状态改变时改变它的行为,看起来就像改变了它的...

    23种设计模式的java实现

    #### 调停者模式(Mediator) - **问题**:如何降低多个对象之间的通信复杂度? - **解决方案**:使用一个中介对象封装对象间的交互。 - **效果**:降低了对象之间的耦合度,提高了系统的可维护性。 #### 备忘录...

    Java核心技术介绍.doc

    - **其他模式**:包括工厂方法、原始模型、桥梁、合成、装饰、享元、代理、命令、解释器、访问者、迭代器、调停者、备忘录、观察者、状态、策略、模板方法和责任链模式,这些都是软件设计中常见的模式,用于解决...

    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