`
samsongbest
  • 浏览: 171457 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

22 行为模式 - 调停者(Mediator)模式

 
阅读更多

1.用意

调停者模式包装了一系列对象相互作用的方式,使得这些对象不必互相明显引用。从而使它们可以轻松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。

 

2.类图


 

3.代码

/*
 * 抽象同事类
 */
public abstract class Colleague {
	private Mediator mediator;

	public Colleague(Mediator m) {
		mediator = m;
	}

	public Mediator getMediator() {
		return mediator;
	}

	public abstract void action();

	public void change() {
		mediator.colleagueChanged(this);
	}
}

/*
 * 具体同事类1
 */
public class Colleague1 extends Colleague{
	public Colleague1(Mediator m) {
		super(m);
	}
	public void action() {
		S.s("This is an action from Colleague 1");
	}

}

/*
 * 具体同事类2
 */
public class Colleague2 extends Colleague{
	public Colleague2(Mediator m) {
		super(m);
	}
	public void action() {
		S.s("This is an action from Colleague 2");
	}
}


/*
 * 抽象调停者
 */
public abstract class Mediator {
	public abstract void colleagueChanged(Colleague c);

	public static void main(String args[]) {
		ConcreteMediator mediator = new ConcreteMediator();
		mediator.createConcreteMediator();
		Colleague c1 = new Colleague1(mediator);
		Colleague c2 = new Colleague2(mediator);
		mediator.colleagueChanged(c1);
	}

}


/*
 * 具体调停者
 */
public class ConcreteMediator extends Mediator {
	private Colleague1 colleague1;
	private Colleague2 colleague2;

	public void colleagueChanged(Colleague c) {
		colleague1.action();
		colleague2.action();
	}

	public void createConcreteMediator() {
		colleague1 = new Colleague1(this);
		colleague2 = new Colleague2(this);
	}

	public Colleague1 getColleague1() {
		return colleague1;
	}

	public Colleague2 getColleague2() {
		return colleague2;
	}
}
 

 

z

  • 大小: 34.7 KB
分享到:
评论

相关推荐

    c++设计模式-行为型模式-中介者模式

    c++设计模式-行为型模式-中介者模式;qt工程;c++简单源码; 中介者(Mediator)模式的定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式...

    调停者模式

    调停者模式涉及的角色包括抽象调停者(Mediator)、具体调停者(Concrete Mediator)、抽象同事类(Colleague)和具体同事对象(Concrete Colleague)。抽象调停者定义了同事对象与调停者之间的接口;具体调停者实现...

    JAVA设计模式之调停者模式详解

    调停者模式是一种设计模式,属于对象的行为模式,其主要目的是降低对象之间的耦合度,使得对象之间的交互更加灵活且易于管理。在Java中,调停者模式通过引入一个中介对象,也就是调停者,来协调多个对象之间的交互,...

    设计模式精解-23种设计模式解析

    #### 3 行为模式 **3.1 Template Method 模式** - **定义**: 模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,并允许子类为步骤定义行为。 - **目的**: 定义一个操作中的算法骨架。 - **优点**: - ...

    java的23种设计模式

    14. **调停者模式**(Mediator) - **模式名称**:调停者模式 - **问题**:多个对象之间的交互过于复杂。 - **解决方案**:引入一个中介对象来协调这些对象之间的交互。 - **效果**:降低了对象之间的耦合度,...

    设计模式中文版

    - 调停者(Mediator):将多个对象之间的交互集中到一个对象,降低耦合度。 - 解释器(Interpreter):用于构建简单的语言解释器。 - 访问者(Visitor):在不修改对象结构的情况下,增加新的操作功能。 - 迭代...

    python实现常用的23种设计模式:含源代码、详细文档说明

    一、创建型模式 1、工厂方法模式【Factory Method】 2、抽象工厂模式【Abstract Factory】 ...8、调停者模式【Mediator】 9、备忘录模式【Memento】 10、迭代器模式【Iterator】 11、解释器模式【Interpreter】

    C++面向对象23种设计模式实现源码DesignPattern.zip

    4. **调停者模式(Mediator Pattern)**:调停者模式用于降低多个对象之间的耦合度,通过一个中介对象协调它们之间的通信。18.调停者模式Mediator展示了如何通过一个仲裁者类来处理对象间的交互,避免对象之间直接...

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

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

    Java中23种设计模式详解

    14. 调停者模式(Mediator) 调停者模式用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式的内部表示。这种模式使得对象交互可以灵活地变化。 15. 备忘录模式(Memento) 备忘录模式在不破坏封装...

    C#23种设计模式_示例源代码及PDF

    行为模式 13、CHAIN OF RESPONSIBLEITY —晚上去上英语课,为了好开溜坐到了最后一排,哇,前面 、 坐了好几个漂亮的 MM 哎, 找张纸条, 写上“Hi,可以做我的女朋友吗?如果不愿意请向前传”, 纸条就一个接一...

    C#设计模式之Mediator中介者模式解决程序员的七夕缘分问题示例

    Mediator模式也被称为调停者模式,它能够将对象之间的耦合度降低,从而提高系统的灵活性和可维护性。 在本文中,我们将使用C#语言来实现Mediator模式,以解决程序员的七夕缘分问题。该示例中,我们将创建三个主要类...

    设计模式简介

    行为型模式包括十一中设计模式:模板方法模式(TemplateMethod)、观察者模式(Observer)、状态模式(State)、策略模式(Strategy)、职责链模式(ChainofResponsibility)、命令模式(Command)、访问者模式...

    设计模式总结笔记设计模式总结笔记

    调停者模式(Mediator)** - **定义**:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 - **用途**:用于协调多个对象的行为...

    Delphi 深度探索(第二版)〖含随书光盘源代码〗

    6.3.9 调停者模式(mediator模式) 6.3.10 状态模式(state模式) 第7章 工具篇 7.1 极限编程的集成测试工具-dunit 7.2 性能分析工具gpprofile 7.3 内存泄漏清道夫--memproof 7. 4 codesite应用指南

    Java课堂:Java开发下的设计模式简单说明

    14. 调停者模式(Mediator):调停者模式通过一个中介对象协调多个对象之间的交互,降低对象间的耦合度。 15. 备忘录模式(Memento):备忘录模式用于在不破坏封装的前提下,保存对象的状态,以便在需要时恢复。 ...

    JAVA 23种设计模式

    14. 调停者模式(Mediator):通过中介对象协调多个对象之间的交互,降低对象间的耦合度。 15. 备忘录模式(Memento):在不破坏封装的前提下,保存对象的状态,以便后续恢复。 16. 观察者模式(Observer):定义...

    23种设计模式的java实现

    #### 调停者模式(Mediator) - **问题**:如何降低多个对象之间的通信复杂度? - **解决方案**:使用一个中介对象封装对象间的交互。 - **效果**:降低了对象之间的耦合度,提高了系统的可维护性。 #### 备忘录...

    设计模式.pdf

    调停者模式(Mediator)** - **定义**:用一个中介对象来封装一系列的对象交互,使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 - **应用场景**:一组对象以定义良好...

Global site tag (gtag.js) - Google Analytics