Mediator Pattern

Das Mediator Pattern (siehe Design Pattern) wird verwendet, wenn eine Menge von Objekten auf komplizierte Art und Weise interagiert.

Die interagierenden Objekte werden als Colleagues bezeichnet. Die Colleagues interagieren nicht direkt miteinander, sondern nur indirekt mittels des Mediators. Dazu halten die Colleagues eine Referenz auf den Mediator und der Mediator hält Referenzen auf die Colleagues, deren Interaktion er dirigieren soll.

public class Mediator
{
  private final Colleague1 colleague1;
  private final Colleague2 colleague2;
  ...
  //
  public Mediator()
  {
    super();
    //
    colleague1 = new Colleague1(this);
    colleague2 = new Colleague2(this);
    ...
  }
  //
  public void doSomething()
  {
    colleague1.doSomething();
    colleague2.doSomething();
  }
  //
  ...
}

public class Colleague1
{
  private final Mediator mediator;
  //
  public Colleague1(Mediator mediator)
  {
    super();
    //
    this.mediator = mediator;
  }
  //
  public void doSomething()
  {
    ...
  }
}

public class Colleague2
{
  private final Mediator mediator;
  //
  public Colleague2(Mediator mediator)
  {
    super();
    //
    this.mediator = mediator;
  }
  //
  public void doSomething()
  {
    ...
  }
}