21 Mediator中介者模式(行为型)

版权声明:就是开个版权玩一下 https://blog.csdn.net/qq_41997479/article/details/86655296

21 Mediator(行为型)

    • 中介者/调停者对象封装了一系列对象相互作用的方式,使得这些对象不必互相明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。)
    • 动机:
      • 面向对象设计鼓励在对象之间分布行为。这种分布可以产生对象结构,对象之间有许多连接;在最坏的情况下,每个对象最终都知道彼此。
    • 什么时候用:
      • 一组对象以定义良好但复杂的方式通信。由此产生的相互依赖关系是非结构化的,难以理解。
      • 重用一个对象是困难的,因为它涉及并与许多其他对象通信。
      • 分布在多个类之间的行为应该是可自定义的,而不需要很多子类化。
    • 结构:

 

    • 参与者:
      • 中介:定义用于与同事对象通信的接口。
      • 具体的中介者:通过协调同事对象来实现协作行为。了解并维护其同事。
      • Colleague classes:
        • 每个同事类都知道它的中介对象。
        • 每一个同事与它的调解人沟通时,它将会与另一个同事沟通。(

colleague间的通信一定要通过mediator)

    • 协作:
      • Colleagues send and receive requests from a Mediator object.
      • 中介通过在适当的同事之间路由请求来实现协作行为。
    • 好处:
      • 解耦
      • 简化对象协议
      • 对象之间的合作抽象出来
      • 集中控制
        • 中介模式以交互的复杂性换成了中介者的复杂性。
        • 由于中介封装了协议,因此它可能比任何单个同事都要复杂。这可以使中介本身一个庞然大物(巨无霸),很难维护。

 

    • 缺点:
      • 所有复杂性在中介者中
    • 避免误用中介者
      • 中介模式适用于避免混乱和丑陋的系统。
      • 中介模式不应该应用于一个混乱和丑陋的系统。

 

    • 原则:最小知识原则

 

 

猜你喜欢

转载自blog.csdn.net/qq_41997479/article/details/86655296