`

《设计模式》之九:中介者模式

阅读更多

大家都学过网络的基本知识,网络拓扑有三种类型: 总线型、环形、星型。在星型网络拓扑中,每个计算机通过交换机和其他计算机进行数据交换,各个计算机之间并没有出现相互交互的情况。这种结构简单、而且稳定,只要中间那个交换机不瘫痪,整个网络不会发生大的故障。公司和网吧一般采用星型网络。

 

当在多个对象依赖的情况下,通过加入终结者的角色,取消了多个对象的关联或依赖关系,减少了对象的耦合性。

 

Mediator Pattern 中介者模式的定义:

Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.

 

中介者模式由以下几部分组成:

1,Mediator抽象中介者角色

2,ConcreteMediator具体中介者角色

3,Colleague同事角色

 

每一个同事角色都知道中介者角色,而且与其他的同事通信的时候,一定要通过中介者角色协作。

每个同事的行为分为两种:一种是同事本身的行为;第二种是必须依赖中介者才能完成的行为,叫依赖方法。

 

中介者模式比较简单,其通用源码为:

public abstract class Mediator {
    // 定义同事类
    protected ConcreteColleague1 c1;
    protected ConcreteColleague1 c2;
    // get/set...

    // 中介者的业务逻辑
    public abstract void doSomething();
}

 

public abstract class Colleague {
    protected Mediator mediator;
    public Colleague(Mediator _mediator) {
        this.mediator = _mediator;
    }
}

 

public class ConcreteColleague1 extends Colleague {
    public ConcreteColleague1(Mediator _mediator) {
        super(_mediator);
    }

    // 自有方法
    public void selfMethod() {

    }

    // 依赖方法
    public void depMethod() {
        super.mediator.doSomething();
    }
}

 

public class ConcreteColleague2 extends Colleague {
    public ConcreteColleague2(Mediator _mediator) {
        super(_mediator);
    }

    // 自有方法
    public void selfMethod() {

    }

    // 依赖方法
    public void depMethod() {
        super.mediator.doSomething();
    }
}

 

public class ConcreteMediator extends Mediator {
    @Override
    public void doSomething() {
        super.c1.selfMethod();
    }
}

 

 

中介者模式的优点:

减少了类之间的依赖,把原有的一对多依赖变成了一对一依赖,同事类只依赖中介者,减少了依赖,降低了耦合度。

 

中介者模式缺点:

中介者会膨胀很大,同事类越多,中介者逻辑越复杂。

 

中介者模式使用场景:

中介者模式适用于多个对象之间紧密耦合的情况,标准是在类图中出现了蜘蛛网结构。这种情况下,一定要用中介者模式将蜘蛛网变成星型。

 

本人博客已搬家,新地址为:http://yidao620c.github.io/

分享到:
评论

相关推荐

    java常用设计模式-中介者模式

    中介者模式(Mediator Pattern)是一种行为设计模式,它允许对象之间通过中介者对象进行通信,从而避免对象之间的直接耦合。中介者模式将对象之间的复杂关系转化为中介者和对象之间的简单关系,从而提高了系统的灵活...

    设计模式 - 中介者模式

    中介者模式是一种行为设计模式,它用于减少多个对象之间的复杂交互,将这些对象通过一个共同的对象——中介者联系起来,使得各对象之间不再直接引用,而是通过中介者进行通信。这种模式降低了对象间的耦合度,提高了...

    设计模式专题之(十七)中介者模式---设计模式中介者模式示例代码(python--c++)

    **中介者模式**是软件设计模式中的一种结构型模式,它的主要目的是降低多个对象之间的复杂交互,通过引入一个中介对象来统一这些交互。在实际应用中,当对象间的交互变得日益复杂,导致类与类之间的关系过于紧密时,...

    JAVA设计模式—中介者模式

    今天我们要探讨的是“中介者模式”,一种在对象间建立通信桥梁的设计模式,它使得原本直接相互依赖的对象可以解耦,降低系统的复杂性。 在Java中,中介者模式通过一个中心类(中介者)来协调各个对象之间的交互,...

    java设计模式之中介者模式

    中介者模式是一种行为设计模式,它用于简化多个对象之间的交互,通过引入一个中介对象来解耦原本直接相互作用的对象。在Java编程中,这种模式尤其有用,因为它可以帮助我们减少类之间的耦合,提高代码的可读性和可...

    设计模式之中介者模式(Mediator Pattern)

    **设计模式之中介者模式(Mediator Pattern)** 在软件工程中,设计模式是一种解决常见问题的经验总结,它提供了一种可复用的解决方案。中介者模式是行为设计模式之一,其主要目的是降低多个对象之间的复杂性,通过...

    C#设计模式之中介者模式小例子

    中介者模式是一种行为设计模式,它的主要目的是降低多个对象之间的耦合度,使得这些对象不必互相了解彼此的实现细节,而是通过一个中介对象进行通信。在C#中,我们可以使用类或接口来实现这个中介者。这种模式的核心...

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

    在软件工程中,设计模式是一种被广泛采用的解决常见问题的经验总结,其中中介者模式是结构型设计模式的一种。它的主要目标是降低对象之间的耦合度,使得对象之间的关系更加清晰,同时也提高了代码的可维护性和可扩展...

    设计模式之中介者模式

    中介者模式是一种行为设计模式,它能帮助我们降低多个对象之间的耦合度,通过引入一个中介对象来协调这些对象之间的交互。在软件工程中,当多个对象之间存在复杂的相互依赖关系时,中介者模式可以提供一种简化通信的...

    C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式

    - **《设计模式:可复用面向对象软件的基础》**,由Erich Gamma等人合著,是设计模式领域的经典之作,详细介绍了包括中介者模式在内的23种设计模式。 - **《面向对象分析与设计》**,由Grady Booch编写,提供了面向...

    iOS的中介者设计模式

    **iOS的中介者设计模式** 中介者设计模式是一种行为设计模式,它主要用来减少对象之间的耦合,将多个对象间的相互依赖关系集中管理,避免它们之间形成复杂的网状结构。在iOS开发中,特别是在大型项目中,为了保持...

    设计模式 - 中介者模式(C++实例)

    **中介者模式(Mediator Pattern)**是一种行为设计模式,它定义了一个用来封装一系列对象交互的接口。在软件工程中,当多个对象之间存在复杂的相互依赖关系时,这种模式可以帮助我们降低系统的耦合度,使得各个对象...

    c#设计模式之中介者

    总结起来,C#中的中介者设计模式提供了一种有效的手段来管理对象间的通信,通过中介者对象集中处理复杂的交互逻辑,降低了对象之间的耦合,提高了代码的可读性和可维护性。理解和掌握这一模式对于提升C#开发者的设计...

    Java 23种设计模式21中介者模式.pdf

    ### Java设计模式之中介者模式详解 #### 模式动机 在软件开发中,尤其是在复杂的系统设计中,对象之间的交互可能会变得极其繁琐和混乱。这种现象尤其体现在对象间存在大量直接依赖关系的情况下,如用户与用户直接...

    JAVA设计模式chm文档

    创建模式: 设计模式之Factory 设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: ...设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor

    23钟设计模式之中介者模式

    中介者模式是软件设计模式中的一种行为模式,其主要目的是减少对象之间的依赖关系,降低对象间的耦合度,使得系统更易于理解和维护。在中介者模式中,一个或多个对象(称为同事对象)通过中介者对象进行通信,而不是...

    23种设计模式详解PDF

    设计模式 的分类 总体来说设计模式分为三大类: 创建型模式(5): 工厂方法模式 、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式(7): 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、...

    第十八讲:中介者模式

    中介者模式是一种设计模式,它在软件工程中用于降低多个对象之间的复杂交互。这个模式的主要目的是通过引入一个中介对象来封装一系列对象之间的交互,使得这些对象不必显式地相互引用,从而让对象之间的耦合度降低。...

    设计模式-中介者模式(讲解及其实现代码)

    在众多设计模式中,中介者模式是一种行为设计模式,它的主要目的是降低对象之间的耦合性,使得对象之间的通信更加清晰和简洁。本文将深入讲解中介者模式,并提供具体的实现代码。 中介者模式的核心思想是引入一个...

Global site tag (gtag.js) - Google Analytics