積木
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
成人免费网站久久久
|
久久精品国产亚洲av麻豆色欲
|
伊人久久久AV老熟妇色
|
欧美久久久久久
|
久久综合狠狠色综合伊人
|
久久一区二区三区99
|
国产婷婷成人久久Av免费高清
|
久久夜色tv网站
|
色综合久久中文字幕无码
|
国产精品久久久99
|
日本强好片久久久久久AAA
|
久久精品桃花综合
|
国内精品伊人久久久久AV影院
|
99久久免费只有精品国产
|
欧美黑人又粗又大久久久
|
无码任你躁久久久久久久
|
久久se精品一区二区
|
久久婷婷五月综合97色
|
久久久久亚洲av成人无码电影
|
浪潮AV色综合久久天堂
|
伊人久久大香线蕉综合5g
|
超级碰久久免费公开视频
|
99久久成人国产精品免费
|
中文字幕久久久久人妻
|
久久综合久久综合亚洲
|
久久免费小视频
|
久久精品嫩草影院
|
.精品久久久麻豆国产精品
|
久久亚洲精品成人AV
|
国产精品99久久久精品无码
|
亚洲国产日韩欧美久久
|
91精品观看91久久久久久
|
国产精品视频久久
|
久久亚洲高清观看
|
久久久精品午夜免费不卡
|
久久亚洲高清观看
|
成人亚洲欧美久久久久
|
久久久无码精品亚洲日韩软件
|
久久被窝电影亚洲爽爽爽
|
国产精品女同一区二区久久
|
久久国产三级无码一区二区
|