设计模式读书笔记:Mediator(中介者)

原创 2015年07月10日 21:04:45

意图:

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

结构图:来自 《23种设计模式 - 郗晓勇》


实现:https://github.com/panshiqu/patterns/tree/master/Mediator

Colleague

namespace NS_MEDIATOR {

class Colleague {
public:
	Colleague() {}
	virtual ~Colleague() {}
};

} /* namespace NS_MEDIATOR */
ConcreteColleague1

namespace NS_MEDIATOR {

class ConcreteColleague1 {
public:
	ConcreteColleague1() {}
	virtual ~ConcreteColleague1() {}
	bool needPrint(void) { return true; }
};

} /* namespace NS_MEDIATOR */
ConcreteColleague2

#include <iostream>

namespace NS_MEDIATOR {

class ConcreteColleague2 {
public:
	ConcreteColleague2() {}
	virtual ~ConcreteColleague2() {}
	void printSelf(void)
	{
		std::cout << "ConcreteColleague2" << std::endl;
	}
};

} /* namespace NS_MEDIATOR */
Mediator

namespace NS_MEDIATOR {

class Mediator {
public:
	Mediator() {}
	virtual ~Mediator() {}
};

} /* namespace NS_MEDIATOR */
ConcreteMediator

#include "ConcreteColleague1.h"
#include "ConcreteColleague2.h"

namespace NS_MEDIATOR {

class ConcreteMediator {
public:
	ConcreteMediator()
	{
		cc1 = new ConcreteColleague1();
		cc2 = new ConcreteColleague2();
	}
	virtual ~ConcreteMediator()
	{
		delete cc1;
		delete cc2;
	}
	void doSomething(void)
	{
		if (cc1->needPrint())
			cc2->printSelf();
	}

private:
	ConcreteColleague1 *cc1;
	ConcreteColleague2 *cc2;
};

} /* namespace NS_MEDIATOR */
main

#include "Mediator/ConcreteMediator.h"
using namespace NS_MEDIATOR;
int main(void)
{
	/*
	 * 这个设计模式估计大家都经常用,设想一下,我有若干个类A,B,C,D,我想组合它们实现实现不同的功能
	 * 譬如ABC实现功能,BCD又实现另外一个功能等等,我把这些实现用类封装起来,它就算是一个中介者了
	 * 为什么要有Colleague及Mediator基类,你直接看书中的场景,很好理解
	 */
	ConcreteMediator cm;
	cm.doSomething();
}
附加:

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

8.java设计模式(读书笔记)中介者模式

参考:http://blog.csdn.net/jason0539/article/details/45216585 (他的抽象中介者概念我并没有采用--不用好像也没问题,还简单一点) ---以前在做...

《Android源码设计模式》读书笔记 (17) 第17章 中介者模式

前言 中介者模式面向的是多类对象 定义 定义:包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用.将多对多相互作用转化为一对多的相互作用. 优点:可以对依赖关系的类进行解耦使逻辑结构清晰 使...

设计模式读书笔记-----中介者模式

在我们的生活中处处充斥着“中介者”,比如你租房、买房、出国留学、找工作、旅游等等可能都需要那些中介者的帮助,同时我们也深受其害,高昂的中介费,虚假信息。在地球上最大的中介者就是联合国了,它主要用来维护...
  • chenssy
  • chenssy
  • 2014年01月18日 09:49
  • 4894

设计模式读书笔记-----中介者模式

在我们的生活中处处充斥着“中介者”,比如你租房、买房、出国留学、找工作、旅游等等可能都需要那些中介者的帮助,同时我们也深受其害,高昂的中介费,虚假信息。在地球上最大的中介者就是联合国了,它主要用来维护...
  • sunny04
  • sunny04
  • 2015年05月20日 10:15
  • 278

《Android源码设计模式解析与实战》读书笔记(十七)——中介者模式

中介者模式也成为调解者模式或调停者模式, Mediator 本身就有调停者和调解者的意思。一般我们听“中介”这个词听得最多的莫过于房产中介了,房产中介者的职责就是作为买房者和卖房者之间的桥梁帮忙联系沟...

设计模式笔记21:中介者模式(Mediator Pattern)

一、中介者模式的内容 中介者模式(Mediator Pattern)定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互...

设计模式 笔记 中介者模式 Mediator

//---------------------------15/04/27---------------------------- /*     1:意图:         用一个中介对象...
  • boydfd
  • boydfd
  • 2015年04月27日 15:28
  • 718

设计模式学习笔记——中介者(Mediator)模式

设计模式学习笔记——中介者(Mediator)模式@(设计模式)[设计模式, 中介者模式, Mediator]设计模式学习笔记中介者Mediator模式 基本介绍 中介者案例 类图 实现代码 Medi...

【设计模式学习笔记十八】【行为模式】【中介者模式(Mediator)】

中介者模式:用一个中介对象(中介者)来封装一系列的对象交互;由中介者使各对象不需要显示的相互引用,从而使其解耦,而且可以独立的改变他们之间的交互。又称调停者模式。 1)能够画出这个设计模式的架构框图;...

[设计模式笔记]三. 行为型模式--19. Mediator模式(中介者)对象行为型模式(一)

行为型模式--Iterator模式(迭代器)对象行为型模式 一. 意图        用一个中介对象来封装一系列的对象交互. 中介者使各对象不需要显式地相互引用, 从而使其耦合松散, ...
  • cay22
  • cay22
  • 2013年10月17日 20:05
  • 1044
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式读书笔记:Mediator(中介者)
举报原因:
原因补充:

(最多只允许输入30个字)