首页 > 代码库 > 21中介模式
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;
}
运行结果如下:
21中介模式