`

中介者模式Mediator 封装交互

阅读更多
用一个中介对象来封装一系列的对象交互。中介者使得各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
public interface Mediator {
  public void changed(Colleague colleague);
}

public abstract class Colleague {
  private Mediator mediator;
  public Colleague(Mediator mediator) {
    this.mediator = mediator;
  }
  public Mediator getMediator() {
    return mediator;
  }
}

public class ConcreteColleagueA extends Colleague {
  public ConcreteColleagueA(Mediator mediator) {
    super(mediator);
  }
  public void someOperation() {
    getMediator.changed(this);
  }
}

public class ConcreteColleagueB extends Colleague {
  public ConcreteColleagueB(Mediator mediator) {
    super(mediator);
  }
  public void someOperation() {
    getMediator.changed(this);
  }
}

public class ConcreteMediator implements Mediator {
  private ConcreteColleagueA colleagueA;
  private ConcreteColleagueB colleagueB;

  public void setConcreteColleagueA(ConcreteColleagueA colleagueA) {
    this.colleagueA = colleagueA;
  }
  public void setConcreteColleagueB(ConcreteColleagueB colleagueB) {
    this.colleagueB = colleagueB;
  }
  public void changed(Colleague colleague) {
   
  }
}

要使用中介者模式来实现,就要区分出同事对象和中介者对象。主板是作为中介者,而光驱、CPU、声卡、显卡等配件,都是作为同事对象。

同事关系:在标准的中介者模式中,将使用中介者对象来交互的那些对象称为同事类。
同事和中介者的关系:在中介者模式中,当一个同事对象发生了改变,需要主动通知中介者,让中介者去处理与其他同事对象相关的交互。

优点:多对多变一对多
分享到:
评论

相关推荐

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

    中介者模式(Mediator) 用意:用一个中介对象来封装一系列对象间的交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。

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

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

    mediator模式

    用一个中介者对象来封装一系列对象的交互,中介和者模式使得各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。

    javascript设计模式之中介者模式Mediator

    一,总体概要 1,笔者浅谈 我们从日常的生活中打个简单的比方,我们去房屋中介租房,房屋中介人在租房者和房东出租者之间形成...中介者的功能就是封装对象之间的交互。如果一个对象的操作会引起其他相关对象的变化,而

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

    php /** * 中介者模式 * * 用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用从而使其耦合松散,而且可以独立地改变它们之间的交互 */ abstract class Mediator { abstract public function send($...

    c++设计模式-行为型模式-中介者模式

    中介者(Mediator)模式的定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。

    PHP设计模式之中介者模式(Mediator Pattern)入门与应用案例详解

    咱们先来看下中介者模式(Mediator Pattern)的定义,它就是,用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互,这种模式又称为调停...

    qiualiang#gof#中介者模式1

    中介者模式模式的定义与特点中介者(Mediator)模式的定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的

    中介者模式1

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

    Objective C 中介者模式设计源码

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

    深入理解JavaScript系列(36):设计模式之中介者模式详解

    中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 主要内容来自:...

    详解设计模式中的中介者模式在C++编程中的运用

    作用:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 结构图如下: Colleage抽象同事类,而ConcreteColleage是具体同时类,...

    详解iOS应用的设计模式开发中Mediator中介者模式的使用

    何为中介者模式?  面向对象的设计鼓励把... 中介者模式:用一个对象来封装一系列对象的交互方式。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 何时使用中介者模式?

    design-pattern-java.pdf

    遍历聚合对象中的元素——迭代器模式(四) 遍历聚合对象中的元素——迭代器模式(五) 遍历聚合对象中的元素——迭代器模式(六) 中介者模式-Mediator Pattern 协调多个对象之间的交互——中介者模式(一) 协调多...

    GoF 的 23 种设计模式

    中介者(Mediator)模式:定义一个中介对象来简化原有对象之间的交互关系,降低系统中对象间的耦合度,使原有对象之间不必相互了解。 迭代器(Iterator)模式:提供一种方法来顺序访问聚合对象中的一系列数据,而不...

    thinking in java

    设计模式之Mediator(中介) Mediator 很象十字路口的红绿灯,每个车辆只需和红绿灯交互就可以. 设计模式之State(状态) 状态是编程中经常碰到的实例,将状态对象化,设立状态变换器,便可在状态中轻松切换.

    Java设计模式(含代码)

    Mediator:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式相互引用,从而使得耦合松散,可以独立改变相互之间的交互。 Memento:不破坏封装的前提下,捕获对象的内部状态,并在该对象之外保存这...

Global site tag (gtag.js) - Google Analytics