`
raymond.chen
  • 浏览: 1441491 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

中介者模式(Mediator Pattern)

阅读更多

定义一个对象封装一系列的对象交互,使得对象之间不需要显式地相互引用,从而使其耦合更加松散。并且还让我们可以独立变化多个对象相互引用。

 

要点:

      1、将多个对象间复杂的关联关系解耦,Mediator模式将多个对象间的控制逻辑进行集中管理,变“多个对象互相关联”为“多个对象和一个中介者关联”,简化了系统的维护,抵御了可能的变化。
      2、随着控制逻辑的复杂化,Mediator具体对象的实现可能相当复杂。这时候可以对Mediator对象进行分解处理。
      3、Facade模式是解耦系统外到系统内(单向)的对象关联关系;Mediator模式是解耦系统内各个对象之间(双向)的关联关系。

 

中介者接口类:

public interface Mediator {
	public void register(String name, Colleague c);
	public void call(String name, Colleague from);
}

 

中介者实现类:

public class ConcreteMediator implements Mediator{
	private Hashtable<String, Colleague> colleagues = new Hashtable<String, Colleague>();

	public void register(String name, Colleague c) {
		colleagues.put(name, c);
	}
	
	public void call(String name, Colleague from) {
		Colleague c = colleagues.get(name);
		if(c!=null){
			System.out.println(from.getName() + " call " + c.getName());
		}
	}
}

 

成员接口类:

public interface Colleague {
	public void call(String name);
	public String getName();
}

 

成员实现类1:

public class ConcreteColleague1 implements Colleague {
	private String name = "张三";
	private Mediator med;
	
	public ConcreteColleague1(Mediator med){
		this.med = med;
		
		this.med.register(this.name, this);
	}
	
	public String getName(){
		return this.name;
	}

	public void call(String name) {
		this.med.call(name, this);
	}
}

 

成员实现类2:

public class ConcreteColleague2 implements Colleague {
	private String name = "李四";
	private Mediator med;
	
	public ConcreteColleague2(Mediator med){
		this.med = med;
		
		this.med.register(this.name, this);
	}
	
	public String getName(){
		return this.name;
	}
	
	public void call(String name) {
		this.med.call(name, this);
	}
}

 

  • 大小: 19.6 KB
0
0
分享到:
评论

相关推荐

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

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

    中介者模式(Mediator Pattern)原理图

    中介者模式(Mediator Pattern)是一种行为型设计模式,用于减少对象之间的直接相互依赖,使得对象间的交互通过一个中介者对象来进行协调。在中介者模式中,对象之间不再直接相互调用,而是通过中介者对象来传递消息...

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

    标题和描述均提到了"C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式",这明确指向了一个特定的设计模式——中介者模式(Mediator Pattern),并且是在C#语言环境下的应用。下面将详细阐述这一设计...

    PHP设计模式之中介者模式(Mediator Pattern)入门与应用案例详解

    咱们先来看下中介者模式(Mediator Pattern)的定义,它就是,用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互,这种模式又称为调停...

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

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

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

    **中介者模式(Mediator Pattern)**是一种行为设计模式,其主要目的是降低多个对象之间的通信复杂性,将这些对象的直接交互转化为与一个中心对象——中介者的交互。在C#中,中介者模式的应用能够有效地减少类之间的...

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

    Java设计模式中的中介者模式(Mediator Pattern)是一种行为设计模式,它的主要目的是降低多个对象之间的耦合性,使得这些对象之间不必显式地互相引用,而是通过一个中介对象进行通信。这种模式使得对象间的交互更为...

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

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

    mediator模式

    **中介者模式(Mediator Pattern)** 中介者模式是一种行为设计模式,它的主要目标是减少对象之间的耦合性,通过引入一个中介对象来协调多个对象之间的交互。在传统的多对象交互场景中,对象之间可能存在复杂的依赖...

    [行为型模式] 中介者模式的理解

    在`MediatorPattern.cpp`和`MediatorPattern.h`这两个文件中,我们可以预期看到中介者模式的具体实现。`MediatorPattern.h`可能包含了中介者和同事类的定义,而`MediatorPattern.cpp`则实现了这些类的成员函数。 ...

    一个演示中介者模式的例子我们用的生活中的定外卖的现象做示例.zip

    在软件设计领域,中介者模式(Mediator Pattern)是一种行为设计模式,旨在减少一组对象之间的通信复杂性。它允许对象之间通过一个中介者对象进行通信,从而避免了直接的相互引用。在日常生活中,定外卖的现象就是一...

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

    中介者模式(Mediator Pattern)是一种行为设计模式,用于封装一组对象间的交互。通过中介者对象,各对象不需要直接引用彼此,而是通过中介者进行间接通信,从而实现了对象间的松耦合。这一模式不仅简化了对象之间的...

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

    中介者模式(Mediator Pattern)是一种行为设计模式,它的主要目的是降低多个对象或类之间的通信复杂性。在软件工程中,当多个对象之间存在复杂的相互依赖关系时,维护这些关系可能会变得困难。中介者模式通过引入一...

    C#版 24种设计模式

    提供者模式(Provider Pattern) 外观模式(Facade Pattern) 享元模式(Flyweight Pattern) 原型模式(Prototype Pattern) 责任链模式(Chain of Responsibility Pattern) 中介者模式(Mediator Pattern) 装饰模式...

    iOS的中介者设计模式

    在提供的"mediatorPattern中介者设计模式"文件中,可以看到具体的代码实现。这里通常会有以下组成部分: 1. `Mediator`协议:定义了中介者应具有的方法,例如`addColleague:`, `removeColleague:`以及协调同事之间...

    Java设计模式之中介者模式-动力节点共6页.pdf.z

    其中一种重要模式是“中介者模式”(Mediator Pattern)。中介者模式的主要目的是降低多个对象之间的耦合度,通过引入一个中介对象来协调这些对象之间的交互。在Java开发中,这种模式被广泛应用于实现组件间的松耦合...

    java中介者模式.docx

    在Java编程中,中介者模式(Mediator Pattern)是一种行为设计模式,它的主要目的是为了简化对象之间的通信,减少对象间的耦合。在传统的对象交互中,每个对象都可能直接与其他对象进行通信,导致复杂的依赖关系。...

    C#设计模式_设计模式_C#_

    中介者模式(Mediator Pattern) 19. 职责链模式(Chain of Responsibility Pattern) 20. 备忘录模式(Memento Pattern) 21. 策略模式(Strategy Pattern) 22. 访问者模式(Visitor Pattern) 23. 状态模式(State Pattern)

    设计模式PPT

     中介者模式(Mediator Pattern)  备忘录模式(Memento Pattern)  观察者模式(Observer Pattern)  状态模式(State Pattern)  策略模式(Strategy Pattern)  模板方法模式(Template Method ...

Global site tag (gtag.js) - Google Analytics