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

Mediator模式

 
阅读更多
调停者模式(Mediator) 属于对象的行为模式。
1. 定义
     调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散偶合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化为一对多的相互作用。调停者模式将对象的行为和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分开处理。
2. 使用的原因
      当对象之间的交互操作很多,且每个对象的行为操作都依赖彼此时,为防止在修改一个对象的行为时,同时涉及到修改很多其他对象的行为,可采用调停者模式,来解决紧耦合问题.
     该模式将对象之间的多对多关系变成一对多关系,调停者对象将系统从网状结构变成以调停者为中心的星形结构,达到降低系统的复杂性,提高可扩展性的作用.
3. 适用的情况举例
    eg1. WTO组织:它是一个协调组织,它将各贸易区自行进行的相互协调的强耦合变成了松散合;
    eg2. 4个MM打麻将,相互之间谁应该给谁多少钱算不清楚了,某人担任调停者,各MM按照各自的筹码数算钱,赚了钱的从调停者这里拿,赔了钱的也付给调停者;
    eg3. 租赁中介:很多人有出租房子的需求,也有不少人需要租房,租赁中介在其中担任了调停者的角色,  疏通了两者之间的复杂关系,也方便了两者。    
4. 类图结构及说明
1)示意性类图如下所示:
2)类说明
    i)Mediator:抽象调停者角色,它定义出同事对象到调停者对象得接口,这个角色一般由Java抽象类实现
    ii)ConcreteMediator:具体调停者模式,从抽象调停者继承,实现了超类所声明的事件方法,它从具体同事对象接收消息,向具体同事对象发出命令.
    iii)Colleague:抽象同事类角色,它定义了调停者同事对象的接口,它只知道调停者而不知道其余同事对象.
    iv)colleague1、colleague2:具体同事类角色,从抽象同事类继承而来,每个具体同事类都知道本身在小范围内的行为,而不知道它在大范围内的目的.


分享到:
评论

相关推荐

    C++ Mediator模式

    **C++ Mediator模式详解** 在软件工程中,设计模式是一种在特定场景下解决常见问题的模板或蓝图,它提供了一种在不违反面向对象原则的前提下,提高代码可复用性和可维护性的方法。Mediator模式是其中的一种行为模式...

    mediator模式

    **中介者模式(Mediator Pattern)** 中介者模式是一种行为设计模式,它的主要目标是减少对象之间的耦合性,通过引入一个中介对象来协调多个对象之间的交互。在传统的多对象交互场景中,对象之间可能存在复杂的依赖...

    Java设计模式之中介模式(Mediator模式)介绍

    **Java设计模式之中介模式(Mediator模式)介绍** 中介模式是一种行为设计模式,它旨在减少多个对象之间的直接通信,从而降低系统复杂性。在Java中,Mediator模式通过引入一个中介对象,使得原本直接相互依赖的对象...

    设计模式之中介者模式(Mediator)

    **中介者模式(Mediator)详解** 在软件工程中,设计模式是一种被广泛采用的解决常见问题的经验总结,其中中介者模式是结构型设计模式的一种。它的主要目标是降低对象之间的耦合度,使得对象之间的关系更加清晰,...

    C++设计模式课件17_Mediator_中介者.pdf

    Mediator模式是一种行为型设计模式,它定义了一个对象来封装一系列对象交互的方式,从而使各个对象之间无需显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 #### 二、Mediator模式的核心...

    设计模式 Mediator 中介者 c++

    中介者模式的完整代码。 程序默认使用vs开发。其他开发工具可能需要做少许调整。

    Mediator.zip

    在"NetCoreDemo"这个示例中,我们可能看到如何在.NET Core框架下应用Mediator模式。 Mediator模式的核心概念是通过一个中介对象协调各个对象的行为,避免它们之间直接通信。这样,当一个对象的状态变化时,不再需要...

    Mediator_C++_

    在Mediator模式下,这些参数可以通过中介者进行统一管理,用户可以通过更改中介者中的设置,而不是修改每个算法的代码,从而实现对多个算法的参数调整。 为了实现这样的功能,C++代码可能包含以下几个关键部分: 1...

    设计模式原理与应用之行为模式.pptx

    本文将对行为模式的原理和应用进行详细的介绍,包括职责链模式、命令模式、解释器模式、迭代器模式、mediator模式、备忘录模式、观察者模式、状态模式、策略模式、模板模式和访问者模式等。 Chain of ...

    JavaScript设计模式与开发实践.pdf

    singleton模式、Factory模式、Abstract Factory模式、Builder模式、Prototype模式、Adapter模式、Bridge模式、Composite模式、Decorator模式、...、Interpreter模式、Iterator模式、Mediator模式、Memento模式等...

    设计模式专题---设计模式示例代码(全)(python--c++)

    7. **Mediator模式**:Mediator模式是一种行为设计模式,定义了一个接口,用于在各对象之间进行通信,降低了对象之间的耦合性,使得对象之间的交互更加灵活。 8. **Memento模式**:Memento模式是用于保存对象状态的...

    C++ 设计模式

    Mediator模式是用来降低多个类之间的耦合度,将它们之间的交互集中在一个单独的中介类中进行管理。在C++中,我们可以创建一个抽象的中介者类,定义接口来处理各个同事类之间的通信。然后,为每个具体的同事类实现这...

    C++设计模式.pdf

    Mediator模式用一个中介对象来封装一系列的对象交互,使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 #### Command模式 Command模式将一个请求封装为一个对象,从而使你...

    设计模式精解-GoF 23种设计模式解析附C++.pdf

    - **Mediator模式**:用一个中介对象来封装一系列的对象交互。Mediator使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 - **Command模式**:将一个请求封装为一个对象,从而使...

    23种设计模式(C++).pdf

    - Mediator模式:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 - Command模式:将一个请求封装为一个对象,从而可用不同的...

    设计模式精解-GoF23种设计模式解析附C实现源码.pdf

    Mediator模式用一个中介对象来封装一系列的对象交互,使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 #### 3.7 Command模式 Command模式将请求封装为一个对象,从而使你...

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    - **3.6 Mediator模式**:定义了一个中介者对象来简化各个组件之间的交互。 - **3.7 Command模式**:将请求封装为一个对象,从而使用户可以用不同的请求对客户端进行参数化。 - **3.8 Visitor模式**:表示一个作用于...

Global site tag (gtag.js) - Google Analytics