• <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>

            08年05月19日

            Posted on 2008-05-19 16:26 RichardHe 閱讀(954) 評論(0)  編輯 收藏 引用
            監(jiān)聽器的注冊與使用,也就是設(shè)計(jì)模式中的觀察模式(observer),一對多關(guān)系
            update的參數(shù)應(yīng)該是subject,可以這樣認(rèn)為,如果把subject當(dāng)作老師,observer當(dāng)作學(xué)生的
            話,那就比較容易明白了,update(subject* sub),也就是老師的狀態(tài)發(fā)生改變時(shí),學(xué)生也要
            發(fā)生改變,并且發(fā)的變化是由老師這個(gè)參數(shù)來決定;既對老師進(jìn)行監(jiān)聽..偽代碼如下:
             1 class Student;
             2 class Teacher
             3 {
             4    public:
             5         Teacher(){}
             6         ~Teacher(){}
             7         //把學(xué)生注冊到老師中.
             8         void attach(Student* stu){stlist.push_back(stu);}
             9         void detach(Student* std);{//不用的對象刪除}
            10         STATE getSate();
            11         //對每個(gè)學(xué)生通知
            12         void notify(){
            13         std::list<Student*>::iterator it=m_stlist.begin();
            14          for(it;it <=m_stlist.end(); ++it)
            15         {   (*it)->update(this);
            16          }
            17    private:
            18        typedef std::list<Student*> StudentList;
            19        StudentList m_stlist;
            20 };
            21 
            22 class Student
            23 {
            24   public:
            25   Student();
            26 ~Student();
            27  void update(Teacher* teach){teach->getState();//根據(jù)老師的狀態(tài)來決定所要做的事.}
            28 };


            朋友們的討論:

            unix_koria--捐款救災(zāi)義不容辭! 說:
            因?yàn)椤tu的update是由老師觸發(fā)
            unix_koria--捐款救災(zāi)義不容辭! 說:
            實(shí)際的工程中,一般都需要知道是哪個(gè)具體對象觸發(fā)這種事件
            kun123456765 說:
            但是我覺得在這里不是必須的
            unix_koria--捐款救災(zāi)義不容辭! 說:
            update實(shí)際就是個(gè)事件而已,給teacher參數(shù),那么可以在stu和tea之間建立聯(lián)系啊。
            kun123456765說:
            我認(rèn)為 可以根據(jù)實(shí)際情況來 決定 子對象 是否 需要知道 什么是父對象
            unix_koria--捐款救災(zāi)義不容辭! 說:
            但大部分都是需要的。
            Richard He 說:
            還有其它的優(yōu)點(diǎn)嗎?
            kun123456765 說:
            恩,在Student中 保存一個(gè)Teacher*
            unix_koria--捐款救災(zāi)義不容辭! 說:
            還會(huì)有回調(diào)要求的。
            kun123456765 說:
            在構(gòu)造的時(shí)候就傳遞
            new stu (this)
            unix_koria--捐款救災(zāi)義不容辭! 說:
            即update里 很多時(shí)候需要通知 宿主
            unix_koria--捐款救災(zāi)義不容辭! 說:
            在構(gòu)造的時(shí)候就傳遞
            new stu (this)

            這樣就限制太死了。
            unix_koria--捐款救災(zāi)義不容辭! 說:
            學(xué)生就是學(xué)生.
            kun123456765 說:
            也可以換個(gè)別的方式。
            但是我還是認(rèn)為 不是必須,而是根據(jù)需求來的。
            觀察者模式的重點(diǎn)應(yīng)該在通知機(jī)制
            unix_koria--捐款救災(zāi)義不容辭! 說:
            ..............
            unix_koria--捐款救災(zāi)義不容辭! 說:
            如果不傳進(jìn)個(gè)老師,有什么優(yōu)點(diǎn)?
            kun123456765說:
            不知道。
            unix_koria--捐款救災(zāi)義不容辭! 說:
            設(shè)計(jì)模式 說的是 大部分通常的做法.....
            unix_koria--捐款救災(zāi)義不容辭! 說:
            沒說一定要那樣,哈哈,你覺得不爽那就不用噶。...
            unix_koria--捐款救災(zāi)義不容辭! 說:
            但傳了teacher指針,則可以兼容更多情況。
            kun123456765 說:
            這點(diǎn)我承認(rèn)。
            unix_koria--捐款救災(zāi)義不容辭! 說:
            因?yàn)橹羔樋梢詾镹ULL
            unix_koria--捐款救災(zāi)義不容辭! 說:
            承認(rèn)就行了,沒必要在這個(gè)點(diǎn)上扣問題了吧.

            posts - 94, comments - 138, trackbacks - 0, articles - 94

            Copyright © RichardHe

            久久综合视频网站| 久久国产欧美日韩精品| 亚洲精品99久久久久中文字幕 | 久久久久亚洲AV无码麻豆| 99国产欧美久久久精品蜜芽| 久久国产欧美日韩精品| 国产精品对白刺激久久久| 99国产精品久久久久久久成人热| 一本色道久久88精品综合| 五月丁香综合激情六月久久| 人妻无码久久一区二区三区免费| 超级97碰碰碰碰久久久久最新| 思思久久99热只有频精品66| 免费久久人人爽人人爽av| 久久人人爽人人爽人人片AV高清| 亚洲欧洲精品成人久久奇米网| 久久亚洲国产精品成人AV秋霞| 久久99精品久久久大学生| 国产成人精品免费久久久久| 99久久精品费精品国产| 久久九九久精品国产| 一本一本久久a久久精品综合麻豆| 日本加勒比久久精品| 伊人色综合久久天天人手人婷| 久久99精品国产自在现线小黄鸭 | 亚洲欧美精品一区久久中文字幕| 久久婷婷午色综合夜啪| 久久久久久亚洲Av无码精品专口 | 久久丫忘忧草产品| 国产三级久久久精品麻豆三级| 亚洲乱亚洲乱淫久久| 99久久免费国产精品特黄| …久久精品99久久香蕉国产| 久久精品国产第一区二区| 色欲久久久天天天综合网| 国产L精品国产亚洲区久久| 久久久久久久女国产乱让韩| 国产精品久久一区二区三区| 少妇人妻综合久久中文字幕| 国产精品va久久久久久久| 久久久久久毛片免费播放|