21中介模式



1中介模式的核心内容是:

A:通过中间这向多方发送消息

2中介模式的作用:通过中介模式模式中介对两个互不通信的部分进行发通知。

3中介模式具体描述

MEDIATOR调停者模式

调停者模式:调停者模式包装了一系列对象相互作用的方式,

使得这些对象不必相互明显作用。从而使他们可以松散偶合。

当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。

保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化

为一对多的相互作用。调停者模式将对象的行为和协作抽象化

,把对象在小尺度的行为上与其他对象的相互作用分开处理。

四个MM打麻将,相互之间谁应该给谁多少钱算不清楚了,

幸亏当时我在旁边,按照各自的筹码数算钱,赚了钱的从我这里拿,

赔了钱的也付给我,一切就OK啦,俺得到了四个MM的电话。

中介者模式,找不到老婆可以相亲靠婚介

4中介模式类图

5.代码:

#include<iostream>

#include<string>

usingnamespacestd;

////MEDIATOR调停者模式

//

////调停者模式:调停者模式包装了一系列对象相互作用的方式,

//使得这些对象不必相互明显作用。从而使他们可以松散偶合。

//当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。

//保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化

//为一对多的相互作用。调停者模式将对象的行为和协作抽象化

//,把对象在小尺度的行为上与其他对象的相互作用分开处理。

//

////四个MM打麻将,相互之间谁应该给谁多少钱算不清楚了,

//幸亏当时我在旁边,按照各自的筹码数算钱,赚了钱的从我这里拿,

//赔了钱的也付给我,一切就OK啦,俺得到了四个MM的电话。

//

////中介者模式,找不到老婆可以相亲靠婚介

classCountry;

classUniteNations

{

public:

virtualvoiddeclare(stringmessage,Country
*colleague) = 0;

};

classCountry

{

protected:

UniteNations
*mediator;

public:

Country(UniteNations
*mediator)

{

this->mediator
= mediator;

}

};

classUSA
:publicCountry

{

public:

USA(UniteNations
*mediator) :Country(mediator)

{}

voiddeclare(stringmessage)

{

cout
<<"美发布信息: "
<< message <<endl;

mediator->declare(message,this);

}

voidgetMessage(stringmessage)

{

cout
<<"美国获得对方信息: "
<< message <<endl;

}

};

classIraq
:publicCountry

{

public:

Iraq(UniteNations
*mediator) :Country(mediator)

{}

voiddeclare(stringmessage)

{

cout
<<"伊拉克发布信息: "
<< message <<endl;

mediator->declare(message,this);

}

voidgetMessage(stringmessage)

{

cout
<<"伊拉克获得对方信息: "
<< message <<endl;

}

};

//相当于中介,向双方发消息

classUnitedNationsSecurityCouncil
:publicUniteNations

{

public:

USA
*usa;

Iraq
*iraq;

voiddeclare(stringmessage,Country
*colleague)

{

if
(colleague ==
usa)

{

iraq->getMessage(message);

}

else

{

usa->getMessage(message);

}

}

};

intmain()

{

UnitedNationsSecurityCouncil
*unsc =
newUnitedNationsSecurityCouncil();

USA
*c1 =
newUSA(unsc);

Iraq
*c2 =
newIraq(unsc);

unsc->usa
= c1;

unsc->iraq
= c2;

c1->declare("不准开发核武器,否则打你!");

c2->declare("他妈的美国去死!");

cin.get();

return
0;

}

运行结果如下:



时间: 2024-12-17 18:35:39

21中介模式的相关文章

php中的设计模式之--中介模式

<?php /* 中介者模式是一种行为型模式,它包装了一系列对象相互作用的方式, 使得这些对象不必相互明显作用,从而使它们可以松散偶合.当某些对象之间的作用发生改变时, 不会立即影响其他的一些对象之间的作用,保证这些作用可以彼此独立的变化. 定义一个中介对象来封装系列对象之间的交互.中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互. 主要角色 ? 中介者(Mediator)角色:定义了对象间相互作用的接口(房产中介) ? 具体中介者(ConcreteMe

Java中介模式(Mediator模式)

Mediator定义:用一个中介对象来封装一系列关于对象交互行为. 为何使用Mediator模式/中介模式 各个对象之间的交互操作非常多,每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为,如果使用Mediator模式,可以使各个对象间的耦合松散,只需关心和 Mediator的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可修改扩展性. 如何使用中介模式 首先 有一个接口,用来定义成员对象之间的交互联系方式:    public inte

21中设计模式

1.Visitor访问者模式 Element:accept(Visitor v)//元素 Visitor:visit(Element e);//对元素进行访问 独立出对元素的访问代码业务 目的:给元素添加新的功能 2.Bridge桥接模式 多维度抽象 abstractor  Message  消息体抽象 interface IServiceMessage   sendMsg(Message msg)//此处进行桥接 分离抽象和实现 3.chain 职责链模式 类似冒泡的一种处理逻辑过程(协同处理

伪中介模式(5.5)

中介模式(mediator pattern)是一种"平台式"或"管家式"委派方式. 中介模式中,中介是各个希望相互交互的参与者的共同且唯一代理,它完成消息的转发或处理. 平台式中介 现实生活中有集市.股票交易所.婚姻介绍所.房屋中介等形形色色的中介(mediator)组织,它们有效地将参与者(participator)的两两交互转化为参与者与中介的交互.但是,这些中介正好是GoF中介模式的错误例子.网上有许多人用QQ为例引入中介模式,显然没有从代码的角度分析,纯属想

中介模式

中介模式: 公开一个统一的接口,限制系统的不同部分可以通过该接口进行通信: 系统不同部分不再显示的引用彼此: 属于行为设计模式. 生活中例子: 机场交通控制系统:机场控制塔(中介者)处理飞机的起飞和降落,因为所有通信(监听到或发出的通知)都是从飞机到控制塔,而不是飞机和飞机直接相互通信. 优点: 能够将系统中对象或组件之间所需的通信渠道从多对多减少到多对一. 缺点: 会导致性能下降,因为它们总是间接地进行通信: 会引入单一故障点. 区别: 和中介者模式比较相似的有观察者模式和外观模式,如下: -

设计模式学习总结(21) 访问者模式

本系列主要记录设计模式的意图是什么,它要解决一个什么问题,什么时候可以使用它:它是如何解决的,掌握它的结构图,记住它的关键代码:能够想到至少两个它的应用实例,一个生活中的,一个软件中的:这个模式的优缺点是什么,其有哪些使用场景,在使用时要注意什么. 尊重作者,转载请注明晔阳的Bloghttp://blog.csdn.net/hacke2 21.访问者模式 意图:主要讲数据结构与数据操作分离 主要解决:稳定的数据结构和易变的操作耦合问题 什么时候使用:与类本不相关的,为了避免这个污染 ,使用访问者

设计模式3(原型模式,中介模式)

原型模式 Delphi中实现是将创建方法进行了strict private 处理 Clone方法不仅产生新的实例,还要对原来对象的属性等进行Clone Tcontractprototype=class(IPrototype) Strict provide Create(Aobject:Tcontractprototype) Public Function Clone:TContractPrototype; End; 中介者模式 封装对象之前的交互 体现了依赖抽象不依赖子类的原则,同事通过中介来触

设计模式之中介模式

参考博文:https://www.cnblogs.com/chenssy/p/3348520.html 2019-06-24  11:39:45 中介模式:处理对象之间多对多的复杂关系. 中介模式成员:抽象成员.具体成员.抽象中介者.具体中介者. 成员:成员含有中介者的抽象引用,通过中介者对其他对象进行操作. 中介者: 中介者含有所有成员的引用,通过这些引用操作成员. 基本代码:参考博文. 原文地址:https://www.cnblogs.com/youzoulalala/p/11076286.

中介模式 Mediator

两个类之间通信,不通过直接通信的方式,而是中间加一层类似于中介的类,中介者模式,就类比租房时找中介那会 // Mediator.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <string> #include <VECTOR> #include <iostream> using namespace std; clas