• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            積木

            No sub title

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              140 Posts :: 1 Stories :: 11 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(1)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            Mediator模式
                  該模型主要解決兩個(gè)或多個(gè)對(duì)象間的相互通信的問(wèn)題。(個(gè)人認(rèn)為該模式的思想同Observer模式的思想還是有點(diǎn)類似的。表面上看,他們所解決的問(wèn)題類型根本不同,那為什么我會(huì)這么認(rèn)為了?后面再說(shuō)明)。按理說(shuō),各對(duì)象間的通信假如:ObjA與ObjB要進(jìn)行通信。方法有好多種。比如:可以在它們內(nèi)部各存一份對(duì)方的引用。在一方變動(dòng)時(shí),調(diào)用另一方進(jìn)行同步即可。但確實(shí)如果系統(tǒng)大而復(fù)雜時(shí),這將顯示的不那么清晰。因此,就希望中間會(huì)有個(gè)調(diào)停者。Mediator模式就因此而生。此時(shí),ObjA與ObjB內(nèi)部只存為一份Mediator(MediatorObj)對(duì)象的引用。在對(duì)象變動(dòng)時(shí),只需調(diào)用MediatorObj的相關(guān)接口,通知其他對(duì)象需要同步更新即可。因此,對(duì)ObjA或ObjB或其他的任何對(duì)象來(lái)說(shuō),它們有可能根本不知道還有其他的對(duì)象存在。(如:ObjA可能不知道ObjB的存在。)但通過(guò)MediatorObj對(duì)象,卻達(dá)到了ObjA與ObjB的同步作用。(現(xiàn)在想下,是不是與Observer模式有點(diǎn)類似?因?yàn)椋绻贠bserver模式的實(shí)現(xiàn)上,抽象出一個(gè)IObserverable來(lái)。那通過(guò)IObserverable對(duì)象,可以通知所有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
                    
                    
            // 通知其他對(duì)象,需要同步
                    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
                    
                    
            // 通知其他對(duì)象,需要同步
                    this->m_pMediator->DoSyncFromBToA();
                }

            private:
                CMediator
            * m_pMediator;
            };
            posted on 2011-06-28 10:26 Jacc.Kim 閱讀(1016) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 設(shè)計(jì)模式
            人妻丰满AV无码久久不卡| 欧美va久久久噜噜噜久久| 精品久久一区二区三区| 久久婷婷五月综合色高清| 久久精品国产91久久麻豆自制| 香港aa三级久久三级| 97精品国产97久久久久久免费| 久久精品夜色噜噜亚洲A∨| 久久99久久99精品免视看动漫| 久久精品夜夜夜夜夜久久| 国产69精品久久久久99尤物| 亚洲午夜精品久久久久久浪潮| 色欲久久久天天天综合网| 免费国产99久久久香蕉| 欧美久久久久久| 国产精品久久网| 久久精品国产精品亚洲精品| 99久久精品国内| 亚洲狠狠婷婷综合久久久久| 国产精品99久久久久久宅男| 欧美一区二区三区久久综合 | 天天影视色香欲综合久久| 久久精品人妻中文系列| www亚洲欲色成人久久精品| 人妻无码久久一区二区三区免费| 欧美日韩精品久久久久| 久久精品国产99国产精品澳门 | 亚洲精品乱码久久久久久按摩| 国产国产成人久久精品| 久久久久亚洲av无码专区导航| 国产精品一区二区久久精品涩爱| 久久国产乱子伦精品免费强 | 欧美亚洲国产精品久久久久| 青春久久| 伊人伊成久久人综合网777| 国产精品熟女福利久久AV| 丁香五月网久久综合| 国产一级做a爰片久久毛片| 人人狠狠综合久久88成人| 久久综合亚洲欧美成人| 久久久久亚洲av无码专区喷水|