日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

21中介模式

發(fā)布時(shí)間:2024/9/27 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 21中介模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


1中介模式的核心內(nèi)容是:

A:通過中間這向多方發(fā)送消息

2中介模式的作用:通過中介模式模式中介對(duì)兩個(gè)互不通信的部分進(jìn)行發(fā)通知。

3中介模式具體描述

MEDIATOR調(diào)停者模式

//

調(diào)停者模式:調(diào)停者模式包裝了一系列對(duì)象相互作用的方式,

//使得這些對(duì)象不必相互明顯作用。從而使他們可以松散偶合。

//當(dāng)某些對(duì)象之間的作用發(fā)生改變時(shí),不會(huì)立即影響其他的一些對(duì)象之間的作用。

//保證這些作用可以彼此獨(dú)立的變化。調(diào)停者模式將多對(duì)多的相互作用轉(zhuǎn)化

//為一對(duì)多的相互作用。調(diào)停者模式將對(duì)象的行為和協(xié)作抽象化

//,把對(duì)象在小尺度的行為上與其他對(duì)象的相互作用分開處理。

//

四個(gè)MM打麻將,相互之間誰應(yīng)該給誰多少錢算不清楚了,

//幸虧當(dāng)時(shí)我在旁邊,按照各自的籌碼數(shù)算錢,賺了錢的從我這里拿,

//賠了錢的也付給我,一切就OK啦,俺得到了四個(gè)MM的電話。

//

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

4中介模式類圖

?

5.代碼:

#include<iostream>

#include <string>

using namespace std;

?

MEDIATOR調(diào)停者模式

//

調(diào)停者模式:調(diào)停者模式包裝了一系列對(duì)象相互作用的方式,

//使得這些對(duì)象不必相互明顯作用。從而使他們可以松散偶合。

//當(dāng)某些對(duì)象之間的作用發(fā)生改變時(shí),不會(huì)立即影響其他的一些對(duì)象之間的作用。

//保證這些作用可以彼此獨(dú)立的變化。調(diào)停者模式將多對(duì)多的相互作用轉(zhuǎn)化

//為一對(duì)多的相互作用。調(diào)停者模式將對(duì)象的行為和協(xié)作抽象化

//,把對(duì)象在小尺度的行為上與其他對(duì)象的相互作用分開處理。

//

四個(gè)MM打麻將,相互之間誰應(yīng)該給誰多少錢算不清楚了,

//幸虧當(dāng)時(shí)我在旁邊,按照各自的籌碼數(shù)算錢,賺了錢的從我這里拿,

//賠了錢的也付給我,一切就OK啦,俺得到了四個(gè)MM的電話。

//

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

class Country;

?

class UniteNations

{

public:

??? virtual void declare(string message, Country *colleague) = 0;

};

?

class Country

{

protected:

??? UniteNations *mediator;

public:

??? Country(UniteNations *mediator)

??? {

??????? this->mediator = mediator;

??? }

};

?

class USA :public Country

{

public:

??? USA(UniteNations *mediator) :Country(mediator)

??? {}

??? void declare(string message)

??? {

??????? cout << "美發(fā)布信息: " << message << endl;

??????? mediator->declare(message, this);

??? }

??? void getMessage(string message)

??? {

??????? cout << "美國獲得對(duì)方信息: " << message << endl;

??? }

};

?

class Iraq :public Country

{

public:

??? Iraq(UniteNations *mediator) :Country(mediator)

??? {}

??? void declare(string message)

??? {

??????? cout << "伊拉克發(fā)布信息: " << message << endl;

??????? mediator->declare(message, this);

??? }

??? void getMessage(string message)

??? {

??????? cout << "伊拉克獲得對(duì)方信息: " << message << endl;

??? }

};

?

//相當(dāng)于中介,向雙方發(fā)消息

class UnitedNationsSecurityCouncil :public UniteNations

{

public:

??? USA *usa;

??? Iraq *iraq;

??? void declare(string message, Country *colleague)

??? {

??????? if (colleague == usa)

??????? {

??????????? iraq->getMessage(message);

??????? }

??????? else

??????? {

??????????? usa->getMessage(message);

??????? }

??? }

};

?

int main()

{

??? UnitedNationsSecurityCouncil *unsc = new UnitedNationsSecurityCouncil();

?

??? USA *c1 = new USA(unsc);

??? Iraq *c2 = new Iraq(unsc);

?

??? unsc->usa = c1;

??? unsc->iraq = c2;

?

??? c1->declare("不準(zhǔn)開發(fā)核武器,否則打你!");

??? c2->declare("他媽的美國去死!");

?

??? cin.get();

??? return 0;

}

運(yùn)行結(jié)果如下:

?

總結(jié)

以上是生活随笔為你收集整理的21中介模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。