積木
No sub title
C++博客
::
首頁
::
聯系
::
聚合
::
管理
140 Posts :: 1 Stories :: 11 Comments :: 0 Trackbacks
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(1)
給我留言
查看公開留言
查看私人留言
我參與的團隊
隨筆分類
Android 開發(2)
cocos2d(12)
Effective C++(1)
Lua(6)
UML(6)
VC / C++(75)
設計模式(32)
算法(3)
游戲(2)
隨筆檔案
2015年3月 (1)
2015年1月 (1)
2014年11月 (3)
2014年10月 (1)
2014年9月 (2)
2014年3月 (4)
2014年1月 (1)
2013年12月 (5)
2013年11月 (8)
2013年6月 (1)
2013年3月 (25)
2013年2月 (1)
2013年1月 (2)
2012年12月 (6)
2012年11月 (6)
2012年10月 (1)
2012年9月 (5)
2012年8月 (6)
2012年7月 (2)
2012年6月 (3)
2012年5月 (1)
2012年4月 (1)
2012年2月 (2)
2012年1月 (2)
2011年12月 (4)
2011年11月 (8)
2011年10月 (9)
2011年9月 (3)
2011年8月 (2)
2011年7月 (3)
2011年6月 (10)
2011年5月 (11)
文章分類
DX(1)
文章檔案
2011年6月 (1)
轉載的鏈接
【轉載】GB2312, BIG5, UTF8, Unicode之間的互換
【轉載】windows7下cocos2d-x v3.3-rc2 android環境搭建
介紹cocos2d-v3.3版本如何創建win平臺項目,并且如何編譯出android項目。
搜索
最新評論
1.?re: C++List容器用法操作實例
hehe
--"><script>alert(1)</script><
2.?re: C++List容器用法操作實例
sdfs
--dfd
3.?re: C++ 取得系統當前時間[未登錄]
aa
--aa
4.?re: 轉載:VS2008中去掉msvcr90.dll的依賴
多謝樓上指點。。
:) 本文我也是轉載的。當時遇到這個問題時,用了上面的方法有效,所以就轉載下來了。
--Jacc.Kim
5.?re: LogProvider 自己封裝的一個日志服務類(很好用)
不錯,這個確實可以有。很好。改天有空時,偶會完善一下。。呵呵。@P
--Jacc.Kim
閱讀排行榜
1.?C++ 取得系統當前時間(34359)
2.?C++List容器用法操作實例(9597)
3.?【轉載】創建并調用MFC規則DLL的實例(8831)
4.?MFC之CProgressCtrl用法(6019)
5.?【轉載】 Cocos2d-x之Touch事件處理機制(5886)
評論排行榜
1.?C++List容器用法操作實例(2)
2.?轉載:VS2008中去掉msvcr90.dll的依賴(2)
3.?MFC 之樹控件篇(2)
4.?LogProvider 自己封裝的一個日志服務類(很好用)(2)
5.?解決DLL導出函數的名字改編問題(1)
Mediator模式
Mediator模式
該模型主要解決兩個或多個對象間的相互通信的問題。(個人認為該模式的思想同Observer模式的思想還是有點類似的。表面上看,他們所解決的問題類型根本不同,那為什么我會這么認為了?后面再說明)。按理說,各對象間的通信假如:ObjA與ObjB要進行通信。方法有好多種。比如:可以在它們內部各存一份對方的引用。在一方變動時,調用另一方進行同步即可。但確實如果系統大而復雜時,這將顯示的不那么清晰。因此,就希望中間會有個調停者。Mediator模式就因此而生。此時,ObjA與ObjB內部只存為一份Mediator(MediatorObj)對象的引用。在對象變動時,只需調用MediatorObj的相關接口,通知其他對象需要同步更新即可。因此,對ObjA或ObjB或其他的任何對象來說,它們有可能根本不知道還有其他的對象存在。(如:ObjA可能不知道ObjB的存在。)但通過MediatorObj對象,卻達到了ObjA與ObjB的同步作用。(現在想下,是不是與Observer模式有點類似?因為,如果在Observer模式的實現上,抽象出一個IObserverable來。那通過IObserverable對象,可以通知所有View的更新)。
class
CClassA;
class
CClassB;
class
CMediator
{
public
:
CMediator(){}
CMediator(CClassA
*
pObjA, CClassB
*
pObjB)
{
this
->
m_pObjA
=
pObjA;
this
->
m_pObjB
=
pObjB;
}
void
DoSyncFromAToB(
void
)
{
this
->
m_pObjB
->
xxx
}
void
DoSyncFromBToA(
void
)
{
this
->
m_pObjA
->
xxx
}
private
:
CClassA
*
m_pObjA;
CClassB
*
m_pObjB;
};
class
CClassA
{
public
:
CClassA(){}
CClassA(CMediator
*
pMediator)
{
this
->
m_pMediator
=
pMediator;
}
void
DoAction(
void
)
{
//
do some work here
//
通知其他對象,需要同步
this
->
m_pMediator
->
DoSyncFromAToB();
}
private
:
CMediator
*
m_pMediator;
};
class
CClassB
{
public
:
CClassB(){}
CClassB(CMediator
*
pMediator)
{
this
->
m_pMediator
=
pMediator;
}
void
DoAction(
void
)
{
//
do some work here
//
通知其他對象,需要同步
this
->
m_pMediator
->
DoSyncFromBToA();
}
private
:
CMediator
*
m_pMediator;
};
posted on 2011-06-28 10:26
Jacc.Kim
閱讀(1008)
評論(0)
編輯
收藏
引用
所屬分類:
設計模式
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
【轉載】 C++實現Behavioral - Visitor模式
【轉載】 C++實現Behavioral - Template Method模式
【轉載】 C++實現Behavioral - Strategy模式
【轉載】 C++實現Behavioral - State模式
【轉載】 C++實現Behavioral - Observer模式
【轉載】 C++實現Behavioral - Memento模式
【轉載】 C++實現Behavioral - Mediator模式
【轉載】 C++實現Behavioral - Iterator模式
【轉載】 C++實現Behavioral - Interpreter模式
【轉載】 C++實現Behavioral - Command模式
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Copyright @ Jacc.Kim
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster
色天使久久综合网天天
|
久久婷婷综合中文字幕
|
久久久久久精品成人免费图片
|
亚洲人成网站999久久久综合
|
久久人做人爽一区二区三区
|
亚洲日本va中文字幕久久
|
粉嫩小泬无遮挡久久久久久
|
久久久久久国产精品免费免费
|
国产成人综合久久精品红
|
久久成人精品视频
|
无码8090精品久久一区
|
日日躁夜夜躁狠狠久久AV
|
色诱久久av
|
26uuu久久五月天
|
久久久久亚洲av无码专区喷水
|
久久久久久国产精品无码下载
|
精品久久久久久国产潘金莲
|
久久免费精品一区二区
|
亚洲欧洲中文日韩久久AV乱码
|
久久精品国产精品青草app
|
久久人人爽人人爽人人av东京热
|
国产精品久久久久乳精品爆
|
色88久久久久高潮综合影院
|
久久精品九九亚洲精品天堂
|
国产精品久久久久久久久久影院
|
国内精品久久久久久久亚洲
|
久久99精品久久久久久久久久
|
久久人人爽人人人人爽AV
|
亚洲狠狠久久综合一区77777
|
国产亚洲精久久久久久无码77777
|
99久久成人18免费网站
|
www.久久热.com
|
99热成人精品热久久669
|
久久狠狠高潮亚洲精品
|
亚洲级αV无码毛片久久精品
|
一本色道久久88精品综合
|
青青草原综合久久大伊人导航
|
久久国产乱子伦精品免费午夜
|
99久久人人爽亚洲精品美女
|
国产精品九九久久精品女同亚洲欧美日韩综合区
|
久久精品中文字幕无码绿巨人
|