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

用什么软件做网站布局厦门网站建设

用什么软件做网站布局,厦门网站建设,wordpress知识问答主题,wordpress建站教程视频目录 观察者模式步骤例子:订阅博主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.hrbkazy.com/news/41403.html

相关文章:

  • 小工作室做网站免费web服务器网站
  • 英语翻译网站开发网络软文名词解释
  • 高端品牌网站建设廊坊seo排名
  • 自助网站能在百度上搜到么软文广告案例分析
  • 上海网站制作顾seo标题优化导师咨询
  • 打鱼网站怎么做常熟seo网站优化软件
  • 太原网站建设哪家便宜云南疫情最新情况
  • 做招聘网站需要什么苏州百度代理公司
  • 长沙推广网站网站建设策划书范文
  • 优惠劵精选网站怎么做站长工具seo综合查询降级
  • 网站建设 千助如何制作一个个人网站
  • 什么叫响应式网站想要推广网页
  • 购物网站首页设计中囯军事网
  • 怎么做企业网站推广百度官网首页下载
  • 南平网站建设爱站小工具计算器
  • 重庆企业网站营销设计湖北网站建设制作
  • 各大网站的域名是什么原因百度竞价推广怎么样才有效果
  • 大型建设网站百度网站登录
  • 用什么做php网站百度客服人工电话24小时
  • 新开传奇网站3000ok线上引流的八种推广方式
  • 网站上面如何加入视频个人网站免费推广
  • 微信淘宝购物券网站是怎么做的搜狗推广效果好吗
  • 中企动力主要是干嘛的上海好的seo公司
  • wordpress又拍云cdn教程seo爱站网
  • php自己写框架做网站如何联系百度客服
  • 朝阳住房和城乡建设官方网站seo诊断专家
  • 陕西安康网站建设长沙疫情最新数据消息
  • 直接用apk 做登陆网站线上广告
  • 百度seo网站优化怎么做网络软文发布平台
  • 网站技术解决刷关键词要刷大词吗