`

中介者模式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、声卡、显卡等配件,都是作为同事对象。

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

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

相关推荐

    C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式

    标题和描述均提到了"C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式",这明确指向了一个特定的设计模式——中介者模式(Mediator Pattern),并且是在C#语言环境下的应用。下面将详细阐述这一设计...

    设计模式 - 中介者模式(C++实例)

    **中介者模式(Mediator Pattern)**是一种行为设计模式,它定义了一个用来封装一系列对象交互的接口。在软件工程中,当多个对象之间存在复杂的相互依赖关系时,这种模式可以帮助我们降低系统的耦合度,使得各个对象...

    设计模式 - 中介者模式

    中介者模式是一种行为设计模式,它用于减少多个对象之间的复杂交互,将这些对象通过一个共同的对象——中介者联系起来,使得各对象之间不再直接引用,而是通过中介者进行通信。这种模式降低了对象间的耦合度,提高了...

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

    ### C++设计模式之Mediator(中介者)详解 #### 一、引言 在软件开发过程中,随着系统的复杂度逐渐增加,各个组件之间的交互变得越来越频繁,这不仅增加了系统的耦合度,还使得系统维护变得困难重重。为了解决这一...

    Mediator模式

    Mediator模式是一种行为设计模式,它定义了一个用来封装一系列对象相互作用的接口,使得这些对象不必显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。这种模式在软件开发中常用于简化对象间的...

    Java 23种设计模式21中介者模式.pdf

    中介者模式(Mediator Pattern)是一种行为设计模式,用于封装一组对象间的交互。通过中介者对象,各对象不需要直接引用彼此,而是通过中介者进行间接通信,从而实现了对象间的松耦合。这一模式不仅简化了对象之间的...

    中介者模式代码示例

    中介者模式是一种设计模式,它在软件工程中用于降低多个对象之间的复杂交互。这个模式的主要目的是通过引入一个中介对象来封装一系列对象之间的交互,使得这些对象不必显式地相互引用,从而让对象间的耦合度降低,...

    C++ Mediator模式

    1. **Mediator(中介者)**: 这是模式的核心,定义了各个同事对象之间交互的接口。Mediator抽象类通常包含一组用于与同事对象交互的方法。 2. **Concrete Mediator(具体中介者)**: 实现Mediator接口,负责协调各个...

    设计模式-中介者模式(讲解及其实现代码)

    中介者模式的核心思想是引入一个中介对象来封装一系列对象之间的交互。这样,原本直接相互引用的对象不再直接通信,而是通过中介对象进行交互,降低了对象间的耦合度。在大型软件系统中,对象之间的关系往往错综复杂...

    Java设计模式之中介者模式-动力节点共6页.pdf.z

    总结来说,Java设计模式中的中介者模式是一种强大的工具,用于管理和协调对象之间的交互。通过引入中介者,我们可以有效地减少对象间的耦合,提高代码的可读性和可维护性,同时增加系统的灵活性和扩展性。在实际开发...

    23钟设计模式之中介者模式

    中介者模式是软件设计模式中的一种行为模式,其主要目的是减少对象之间的依赖关系,降低对象间的耦合度,使得系统更易于理解和维护。在中介者模式中,一个或多个对象(称为同事对象)通过中介者对象进行通信,而不是...

    设计模式_行为型_中介者模式.md

    中介者模式(Mediator)是一种行为型设计模式,其核心思想在于通过引入一个中介者对象来封装一系列对象间的交互关系。在软件工程中,这种模式主要用于减少类之间复杂的直接通信,从而降低系统间的耦合性,提高可维护...

    [行为型模式] 中介者模式的理解

    中介者模式是一种行为设计模式,它定义了一个用来封装一系列对象交互的抽象接口,并且使得这些对象不必显式地相互引用,从而使得它们可以独立地改变它们之间的交互。这种模式在软件工程中广泛应用,特别是在需要解耦...

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

    中介者模式是一种行为设计模式,它允许将对象间的直接交互简化为通过一个中介对象来实现。这种模式的目的是减少类之间不必要的直接通信,从而降低系统的耦合度。 在PHP中实现中介者模式,主要涉及以下几个关键组件...

    c#设计模式之中介者

    中介者模式的核心思想是引入一个中介对象来封装一系列对象之间的交互,使得这些对象不必显式地相互引用,从而可以独立地改变它们之间的交互。这种模式将复杂的网状结构转换为星型结构,使得代码更加清晰,易于维护。...

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

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

    设计模式之中介模式Java实现版本

    中介模式(Mediator Pattern)属于行为设计模式,它旨在降低多个对象之间的复杂交互,通过引入一个中介对象来封装原本复杂的网状结构,使得这些对象之间的通信变得简单和可复用。在Java中,我们可以很容易地实现这个...

Global site tag (gtag.js) - Google Analytics