首先,看下两个设计模式的定义

  • 观察者模式:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
  • 中介者模式:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互

通过一张表格总结其区别

观察者模式 中介者模式
行为型模式 ~
强调观察者改变时统一的通知 强调同事类之间的交互
观察者都会收到消息 同事类可以有选择进行交互
处理逻辑在发送方 处理逻辑在中介者
观察者和被观察者分离 同事类之间交互解耦