设计模式:中介模式

发布时间:2021-10-01 22:58:10 阅读:(175)

    中介模式

    什么是中介模式

    用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。中介模式又称为调停模式

    设计思想

    多个类很容易相互耦合,形成网状结构(相互调用,不利于变动,逻辑也较为难懂),中介模式的作用就是将这种网状结构分离成星形结构(一个中介类作为业务中心,边缘类只关心自身业务即可,中介类只关心调用逻辑即可),业务流畅

    设计要点

    最主要的就是找到并区分好三种角色

    • 交互对象:要进行交互的一系列对象,如租房时的租客,交易所的股民
    • 中介者:负责协调各个对象之间的交互,如房产中介,证券交易所
    • 具体中介者:中介的具体实现

    优缺点

    优点:

    • 中介将原本分布于多个对象间的行为集中在一起,作为一个独立的概念并将其封装在一个对象中,简化了对象之间的交互
    • 将多个调用者和多个实现者之间的多对多的交互关系,转换为一对多的交互关系,一对多的交互关系更易于理解、维护和扩展,大大减少了多个对象之间相互交叉引用的情况

    缺点:

    • 中介者承接了所有的交互逻辑,交互的复杂度转变成了中介者的复杂度,中介者类会变得越来越庞大和复杂,以至于难于维护
    • 中介者出现问题会导致多个使用者同时出问题

    应用场景

    • 一组对象以定义良好但复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解
    • 一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象
    • 想通过一个中间类来封装多个类中的行为,同时又不想生成太多子类