当前位置: 首页 > news >正文

凡客vancl的网站标题网站建设与管理维护

凡客vancl的网站标题,网站建设与管理维护,wordpress pc 手机,永久建站空间购买观察者模式#xff1a;定义对象间的一种一对多的依赖关系#xff0c;当一个对象的状态发生改变时#xff0c;所有依赖于它的对象都得到通知并被自动更新。它还有两个别名#xff0c;依赖(Dependents)#xff0c;发布-订阅(Publish-Subsrcibe)。可以举个博客订阅的例子定义对象间的一种一对多的依赖关系当一个对象的状态发生改变时所有依赖于它的对象都得到通知并被自动更新。它还有两个别名依赖(Dependents)发布-订阅(Publish-Subsrcibe)。可以举个博客订阅的例子当博主发表新文章的时候即博主状态发生了改变那些订阅的读者就会收到通知然后进行相应的动作比如去看文章或者收藏起来。博主与读者之间存在种一对多的依赖关系。下面给出相应的UML图设计。 可以看到博客类中有一个观察者链表即订阅者当博客的状态发生变化时通过Notify成员函数通知所有的观察者告诉他们博客的状态更新了。而观察者通过Update成员函数获取博客的状态信息。代码实现不难下面给出C的一种实现。 [cpp] view plaincopyprint? //观察者   class Observer     {   public:       Observer() {}       virtual ~Observer() {}       virtual void Update() {}    };   //博客   class Blog     {   public:       Blog() {}       virtual ~Blog() {}       void Attach(Observer *observer) { m_observers.push_back(observer); }     //添加观察者       void Remove(Observer *observer) { m_observers.remove(observer); }        //移除观察者       void Notify() //通知观察者       {           listObserver*::iterator iter  m_observers.begin();           for(; iter ! m_observers.end(); iter)               (*iter)-Update();       }       virtual void SetStatus(string s) { m_status  s; } //设置状态       virtual string GetStatus() { return m_status; }    //获得状态   private:       listObserver*  m_observers; //观察者链表   protected:       string m_status; //状态   };   以上是观察者和博客的基类定义了通用接口。博客类主要完成观察者的添加、移除、通知操作设置和获得状态仅仅是一个默认实现。下面给出它们相应的子类实现。      [cpp] view plaincopyprint? //具体博客类   class BlogCSDN : public Blog   {   private:       string m_name; //博主名称   public:       BlogCSDN(string name): m_name(name) {}       ~BlogCSDN() {}       void SetStatus(string s) { m_status  CSDN通知 :   m_name  s; } //具体设置状态信息       string GetStatus() { return m_status; }   };   //具体观察者   class ObserverBlog : public Observer      {   private:       string m_name;  //观察者名称       Blog *m_blog;   //观察的博客当然以链表形式更好就可以观察多个博客   public:        ObserverBlog(string name,Blog *blog): m_name(name), m_blog(blog) {}       ~ObserverBlog() {}       void Update()  //获得更新状态       {            string status  m_blog-GetStatus();           coutm_name-------statusendl;       }   };   客户的使用方式 [cpp] view plaincopyprint? //测试案例   int main()   {       Blog *blog  new BlogCSDN(wuzhekai1985);       Observer *observer1  new ObserverBlog(tutupig, blog);       blog-Attach(observer1);       blog-SetStatus(发表设计模式C实现15——观察者模式);       blog-Notify();       delete blog; delete observer1;       return 0;   }   本人享有博客文章的版权转载请标明出处 http://blog.csdn.net/wuzhekai1985
http://www.yutouwan.com/news/471910/

相关文章:

  • 十大电子游戏平台网站常平网站建设公司
  • 给工厂做代加工上海专业seo
  • 网站开发描述wordpress邀请码教程
  • 网站有图片的验证码是怎么做的网站导航栏设计要求
  • 江西建设安全网站重庆设计集团
  • 烟台百度网站排名资讯wordpress主题
  • 网站维护的基本内容包括哪些杭州seo软件
  • 天津做网站哪个公司好代理公司收费标准
  • dw制造网站log怎么做网站建设和平面设计
  • 网站上的图片做多大微商城开发需要多少钱
  • 在线相册jsp网站开发与设计网页界面设计怎么做
  • 网站都有什么类型的线上营销课程哪里学
  • 建设地情网站的作用嵌入式开发工程师需要学什么
  • 什么编程语言做网站安全番禺人才网招聘网官网
  • 重庆网站建设公司 菠拿拿哪些网站可以做装修
  • 产品设计私单网站建立网站 优帮云
  • 网站域名密码忘了网站备案资料查询
  • 网站建设费属于哪个会计科目建设银行的网站是多少
  • 阿里巴巴自助建站的一般流程广东网站建设定制
  • 建设校园网站的意义phpwind 转wordpress
  • 没钱怎么做网站做网站合肥
  • 上海网站制作公司哪家百度竞价规则
  • 网站设计哪家强成都网站建设龙兵
  • 网站发布的方法有几种.net可以做网站做游戏 博客园
  • 用地方别名做网站名wordpress获取分类目录连接
  • ftp网站服务器梅州在建高铁最新消息
  • 直播类网站怎么做做电影网站用什么cms
  • 政务内网网站建设方案网站开发验收单
  • 广州建设银行投诉网站网页实时翻译软件
  • 怎么在网上做公司网站湖南网站设计方案