積木
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++ 取得系統當前時間(34385)
2.?C++List容器用法操作實例(9609)
3.?【轉載】創建并調用MFC規則DLL的實例(8866)
4.?MFC之CProgressCtrl用法(6041)
5.?【轉載】 Cocos2d-x之Touch事件處理機制(5906)
評論排行榜
1.?LogProvider 自己封裝的一個日志服務類(很好用)(2)
2.?MFC 之樹控件篇(2)
3.?C++List容器用法操作實例(2)
4.?轉載:VS2008中去掉msvcr90.dll的依賴(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
閱讀(1026)
評論(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
久久精品国产99国产电影网
|
思思久久99热只有频精品66
|
国产精品99久久免费观看
|
久久er99热精品一区二区
|
久久99精品久久久久久水蜜桃
|
一本久久知道综合久久
|
中文字幕乱码人妻无码久久
|
亚洲AV无码一区东京热久久
|
国内精品九九久久精品
|
国产精品对白刺激久久久
|
国产99久久久国产精免费
|
国产女人aaa级久久久级
|
国产99久久久久久免费看
|
精品久久久久久99人妻
|
久久国产精品成人免费
|
久久露脸国产精品
|
久久国产精品波多野结衣AV
|
伊人久久无码精品中文字幕
|
精品乱码久久久久久久
|
久久久久国产精品
|
久久久久噜噜噜亚洲熟女综合
|
久久综合九色综合久99
|
久久久久亚洲AV片无码下载蜜桃
|
久久天堂AV综合合色蜜桃网
|
青青草国产精品久久
|
久久九九免费高清视频
|
国内高清久久久久久
|
少妇精品久久久一区二区三区
|
久久国产免费直播
|
亚洲国产成人久久综合区
|
99久久人妻无码精品系列蜜桃
|
久久天天躁狠狠躁夜夜躁2014
|
久久伊人精品青青草原高清
|
久久精品水蜜桃av综合天堂
|
人妻精品久久无码专区精东影业
|
国产日韩欧美久久
|
久久综合亚洲鲁鲁五月天
|
亚洲精品午夜国产va久久
|
亚洲国产精品无码久久久不卡
|
色婷婷综合久久久久中文一区二区
|
99久久精品免费看国产
|