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

建网站和做微信哪个好自己的网站怎么开

建网站和做微信哪个好,自己的网站怎么开,企业管理软件有哪些,查询备案网站观察者模式 观察者模式的优缺点 优点 当一个对象改变的时候 需要同时改变其他对象的相关动作的时候 ,而且它不知道有多少具体的对象需要改变 应该考虑使用观察者模式 。观察者模式的工作就是解除耦合 让耦合双方都依赖与抽象 而不是具体 是的各自改变都不会影响另…

观察者模式

在这里插入图片描述

观察者模式的优缺点

优点

  • 当一个对象改变的时候 需要同时改变其他对象的相关动作的时候 ,而且它不知道有多少具体的对象需要改变 应该考虑使用观察者模式 。
  • 观察者模式的工作就是解除耦合 让耦合双方都依赖与抽象 而不是具体 是的各自改变都不会影响另一边工作

缺点

  • 具体的观察类里面的update方法太单调了 现实是每个观察者的动作都可能都所不同

可以使用两种方式去解决此类问题
1:具体的观察者实现具体的 自己需要完成的任务 在继承抽象Observer后 在update内部直接调用具体的方式
2:具体的观察者将自己具体的动作也同时注册到 通知类里面 改变通知类里面的容器为map容器类 key为具体的观察者 value为具体的处理函数

代码

只实现基础部分
在这里插入图片描述

#include <iostream>  
#include <set>  
using namespace std;// 抽象观察者  
class Observer {
public:virtual void update(const string& subjectState) = 0;
};// 抽象主题  
class Subject {
public:virtual void Attach(Observer* observer) = 0;virtual void Detach(Observer* observer) = 0;virtual void Notify(const string& state) = 0;virtual string GetSubjectState() const = 0;virtual void SetSubjectState(const string& state) = 0;
};// 具体主题  
class ConcreteSubject : public Subject {
public:void Attach(Observer* observer) override {observers.insert(observer);}void Detach(Observer* observer) override {observers.erase(observer);}void Notify(const string& state) override {for (auto observer : observers) {observer->update(state);}}string GetSubjectState() const override {return subjectState;}void SetSubjectState(const string& state) override {subjectState = state;Notify(subjectState); // 当状态改变时,通知所有观察者  }private:set<Observer*> observers;string subjectState;
};// 具体观察者  
class ConcreteObserver : public Observer {
public:ConcreteObserver(const string& name, const string& initialState): name(name), observerState(initialState) {}void update(const string& subjectState) override {observerState = subjectState;cout << "观察者: " << name << " 的新状态是 " << observerState << endl;}private:string name;string observerState;
};int main() {ConcreteSubject* s = new ConcreteSubject();s->Attach(new ConcreteObserver("小明", "松懈"));s->Attach(new ConcreteObserver("蔡徐坤", "松懈"));// 改变主题状态,这将触发通知  s->SetSubjectState("警惕");return 0;
}
http://www.yayakq.cn/news/166023/

相关文章:

  • 从0开始做网站wordpress教育主题
  • 做网站怎么查看来访ip网站排名数据
  • 广州做网站的公司哪家好小游戏大全网页版
  • 重庆网站建设公司联系方式江西城乡建设部网站首页
  • 驾校网站模版中学网站建设
  • 朝阳企业网站建设方案服装电子商务网站建设过程与实现
  • 建设银行什么网站可买手表亚马逊做网站发礼物换评价
  • 网站建设电商免费咨询造成损害
  • 怎么样做一家卖东西的网站沈阳做网站黑酷科技
  • 襄阳营销型网站惠州招聘网
  • 想搭建网站学什么软件开发的流程是什么
  • wordpress 自建网站曲阳网站建设
  • 网站更改备案深圳 网站 传播
  • 微信链接网站怎么做wordpress 侧边悬浮窗
  • 互站网怎么样淄博 网站建设
  • 网站运营与推广论文各行业的专业网址论坛资料
  • 网站推广公司渠道南昌网站建设哪家比较好
  • 如何用阿里云建网站西安哪里好玩
  • 做网站要需要多少钱网件路由器为什么都是官翻
  • 福建建设执业注册管理中心网站赣州深科网站建设
  • 简述网站建设基本流程答案平面设计软件哪个好用
  • 男的女的做那个的视频网站wordpress首页模板文件位置
  • 广告公司网站建设浙江省城乡住房建设网站
  • 买证书网站开发工程师word网站链接怎么做
  • 网站建设的关键词网站改了模板被百度降权
  • 郑州十大网站建设公司怎么查看网站建设时间
  • 网站建设冖金手指花总十五seo排名网站 优帮云
  • 云南手机网站建设织梦做泰文网站
  • 有没有找人做标书的网站品牌高端网站
  • 做淘宝一样的网站深圳网站建设外贸公司