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

    xiaoxiao2021-03-25  123

    Mediator模式用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 可以通过将集体行为封装在一个单独的中介者(mediator)对象中以避免这个问题。中介者负责控制和协调一组对象间的交互。中介者充当一个中介以使组中的对象不再相互显式引用。这些对象仅知道中介者, 从而减少了相互连接的数目。

    类图:

    Mediator模式使用双分派,具体的Mediator对象持有所有同事(Colleague)对象的引用,每个同事(Colleague)对象持有Mediator对象的引用。当一个同事(Colleague)对象发生变化,通知Mediator对象,Mediator对象根据谁发生变化,通知另外的同事(Colleague)对象。

    一种实现方法是使用Oberver模式,将Mediator实现为一个Oberver各Colleague作为Subject,一旦其状态改变就发送通知给Mediator。Mediator作出的响应是将状态改变的结果传播给其他的Colleague。

    转载请注明原文地址: https://ju.6miu.com/read-3924.html

    最新回复(0)