中介者模式-19

发布时间 2023-08-11 09:31:06作者: CSloe

概述

中介者模式 (Mediator Pattern) 又称调停者模式。它定义一个中介对象封装一系列对象的交互,使得交互的对象不需要显式地引用。

优点:简化对象之间的交互,减少子类的数量。
缺点:中介类可能非常复杂。

abstract class AbstractMediator {
  abstract void register(Member m);
  abstract void action();
}

abstract class Member {
  private AbstractMediator am;
  private String name;
  
  abstract void activity();
}

class Mediator extends AbstractMediator {
  private ArrayList<Member> mbs;
  
  public register(Member m) {
    if (!mbs.contains(m)) {
      mbs.add(m);
      m.setAm(this);
    }
  }
  
  public void action() {
    // body
  }
}

class SubMember extends Member {
  public void activity() {
    // other
    am.action();
    // other
  }
}

图示:
image

参考

[1] 刘伟, 设计模式, 2011.