天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 171|回复: 0

观察者模式-Observer

[复制链接]
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-3-9 13:41:37 | 显示全部楼层 |阅读模式
    今天两点感悟:

    1、代码尽量不要拷贝,能自己敲的就自己敲吧。这样的好处最明显的地方就是加深理解记忆,以后面试的时候不至于我知道在哪里,但是回答不上来。

    2、多写东西,自己的东西,不要拷贝,自己怎么理解的就怎么写。那是自己的,不是别人的。

    观察者模式-Oberver

    说明:当被观察者Obervenber的属性改变时,通知观察者,this(被观察者)的值改变了。



    观察者代码

    class CObserver {
    public:
        CObserver();
        virtual ~CObserver();
        virtual void Update(CObservable* pObservable);
    private:

    };
    被观察者

    class CObservable {
    public:
        CObservable();
        virtual ~CObservable();
        void Notiy();
        void RegisterObserver(CObserver* pObserver);
        void UnRegisterObserver(CObserver* pObserver);
    private:
        list<CObserver*> m采用listObserverPtr;
    };
    CObservable::CObservable() {
        m采用listObserverPtr.clear();
    }

    CObservable::~CObservable() {
        m采用listObserverPtr.clear();
    }

    void CObservable::Notiy()
    {
        list<CObserver*>::iterator it;
        for(it = m采用listObserverPtr.begin();it != m采用listObserverPtr.end();it++)
        {
            (*it)->Update(this);
        }
    }
    void CObservable::RegisterObserver(CObserver* pObserver)
    {
        if(pObserver)
        {
            m采用listObserverPtr.push采用back(pObserver);
        }
    }
    void CObservable::UnRegisterObserver(CObserver* pObserver)
    {
        list<CObserver*>::iterator it;
        for(it = m采用listObserverPtr.begin();it != m采用listObserverPtr.end();)
        {
            if(pObserver == *it)
            {
                m采用listObserverPtr.erase(it);
            }
            else
            {
               it++;
            }
        }
    }

     

     

     

     

    观察者模式-Observer
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-11-1 13:23 , Processed in 0.162402 second(s), 27 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表