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

网站做rss wordpress最新nba排名

网站做rss wordpress,最新nba排名,wordpress 字段帅选,html5做网站链接目录 观察者模式步骤例子:订阅博主UML图1:定义观察者接口2:定义被观察者接口3:创建具体观察者类4:创建具体被观察者类5:使用执行结果 观察者模式 观察者模式允许我们定义一种订阅机制,可在对象…

目录

    • 观察者模式
    • 步骤
    • 例子:订阅博主
      • UML图
      • 1:定义观察者接口
      • 2:定义被观察者接口
      • 3:创建具体观察者类
      • 4:创建具体被观察者类
      • 5:使用
      • 执行结果

观察者模式

观察者模式允许我们定义一种订阅机制,可在对象事件发生时通知所有的观察者对象,使它们能够自动更新。观察者模式还有另外一个名字叫做“发布-订阅”模式。

步骤

1:定义观察者接口
2:定义被观察者接口
3:创建具体观察者类
4:创建具体被观察者类
5:使用

例子:订阅博主

UML图

Inheritance
Inheritance
Composition
1
*
Association
1
1
Blogger
- list attach_list
+void attach(Observer* ob)
+void detach(Observer* ob)
+void notify(string msg)
Observer
- string m_name
- Blogger* m_blog
+Observer(string name, Blogger* blog)
+void unsubscribe()
+void update(string msg)
Zhanyun
+void notify(string msg)
Subscriber
+Subscriber(string name, Blogger* blog)
+void update(string msg)

1:定义观察者接口

// 订阅者
class Observer {
public:Observer(string name, Blogger* blog) : m_name(name), m_blog(blog) {m_blog->attach(this);}void unsubscribe() {m_blog->detach(this);}virtual void update(string msg) = 0;virtual ~Observer() {}
protected:string m_name;Blogger* m_blog;
};

2:定义被观察者接口

// 博主
class Blogger {
public:void attach(Observer* ob) {attach_list.push_back(ob);}void detach(Observer* ob) {attach_list.remove(ob);}virtual void notify(string msg) = 0;virtual ~Blogger() {}
protected:// 订阅者列表list<Observer*> attach_list;
};

3:创建具体观察者类

class Subscriber : public Observer {
public:using Observer::Observer;void update(string msg) override {cout << m_name << " 收到博客更新: " << msg << endl;}
};

4:创建具体被观察者类

// 博主 zhanyun
class Zhanyun : public Blogger {
public:void notify(string msg) override {cout << "博主 zhanyun 更新了博客,订阅者一共有<" << attach_list.size() << ">人" << endl;for (const auto& item : attach_list) {item->update(msg);}}
};

5:使用

int main() {Zhanyun* zhanyun = new Zhanyun;Subscriber* A = new Subscriber("A", zhanyun);Subscriber* B = new Subscriber("B", zhanyun);zhanyun->notify("zhanyun 发布了一篇关于观察者模式的博客文章。");delete A;delete B;delete zhanyun;return 0;
}

执行结果

博主 zhanyun 更新了博客,订阅者一共有<2>人
A 收到博客更新: zhanyun 发布了一篇关于观察者模式的博客文章。
B 收到博客更新: zhanyun 发布了一篇关于观察者模式的博客文章。

http://www.dinnco.com/news/79134.html

相关文章:

  • 怎么和其他网站交换友情链接青岛seo软件
  • 上海网站公安备案号哪个平台可以接推广任务
  • 做网站写个人日志专业的seo外包公司
  • 高端网站建设公司名称广告软文小故事200字
  • 专业做网站 优帮云迅雷磁力链bt磁力天堂下载
  • 科普互联网站建设我赢网客服系统
  • 泉州网站的建设广东网站seo策划
  • 什么软件可以做mv视频网站seo优化教程培训
  • 网站seo的重要性国内十大4a广告公司
  • 牡丹区住房城乡建设局网站有什么平台可以发广告
  • 四川省建设厅网站川北医学院seo零基础培训
  • 阳江市建设路龙源学校网站阿里指数查询手机版
  • 上海城乡建设与交通委员会网站一套完整的运营方案
  • 无锡建设公司网站中国十大软件外包公司
  • wordpress变域名工具关键词优化排名软件
  • 郑州手机网站制作公司网络推广公司运营
  • 蛋糕方案网站建设百度账号一键登录
  • 永久域名怎么注册seo实训报告
  • 上海装修公司排名十强南宁seo外包服务
  • 光明乳业网站是谁做的指数工具
  • wordpress批量添加摘要网站优化seo培
  • 网络供应商网站网址seo公司推荐推广平台
  • 旅游官网优化大师安卓版
  • 网站开发有哪些风险企业邮箱哪个好
  • wordpress插件dflipseo关键词优化排名推广
  • wordpress 选择插件seo销售话术开场白
  • 苏州专业做网站公司有哪些百度怎么打广告在首页
  • 做百度推广是不是得有个网站先怎么做线上推广
  • 自己做网站背景图片内容营销是什么意思
  • 淘宝客网站建站教程肇庆网站搜索排名