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

东莞网站制作十强世界工厂网官网下载

东莞网站制作十强,世界工厂网官网下载,seo托管,西安建设工程信息网ca锁怎么安装观察者模式 观察者模式的优缺点 优点 当一个对象改变的时候 需要同时改变其他对象的相关动作的时候 #xff0c;而且它不知道有多少具体的对象需要改变 应该考虑使用观察者模式 。观察者模式的工作就是解除耦合 让耦合双方都依赖与抽象 而不是具体 是的各自改变都不会影响另…观察者模式 观察者模式的优缺点 优点 当一个对象改变的时候 需要同时改变其他对象的相关动作的时候 而且它不知道有多少具体的对象需要改变 应该考虑使用观察者模式 。观察者模式的工作就是解除耦合 让耦合双方都依赖与抽象 而不是具体 是的各自改变都不会影响另一边工作 缺点 具体的观察类里面的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:setObserver* 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.hkea.cn/news/14363102/

相关文章:

  • 无需注册免费创建网站溧阳网站建设
  • 国建设银行e路通网站申陕西网站建设通报
  • linux 建立网站抖音代运营话术模板
  • 公司网站怎么做才能吸引人如何在外管局网站做付汇延期
  • 北京做网站比较有名的公司有哪些珠海做网站哪家专业
  • 网站如何做直播让wordpress主题适用插件
  • 网站字体大小是多少合适wordpress加载主题
  • 没有备案的交易网站最近三天的国内新闻
  • 自己有域名怎么做网站定西市建设网站费用
  • 长春网站快速排名提升专业的句容网站建设
  • 花生壳可以用来做网站吗招投标网站官网
  • 潍坊正规建设网站网站建设120
  • 小说网站开发过程 实训报告河北工程信息网
  • 安阳网站建设_建筑业企业所得税2%
  • 可以做动图的视频网站网站建设需求文档模板下载
  • 普通网站建设多少钱义乌详情页制作
  • 自己建网站卖东西好卖吗百度搜图片功能
  • 口碑好的广州做网站猎头公司是啥意思
  • 扁平化企业网站腾讯和中国联通
  • app产品网站模板网件路由器重置
  • 政务服务中心网站建设总结山东省住房建设部网站首页
  • 深圳 网站开发投资集团
  • 贵阳公司网页网站建设网站做分享链接
  • wordpress海外建站网站设计确认书
  • 中学生设计的网站wordpress换域名后
  • 西安西郊网站建设微信公众号内容编辑及排版
  • 免费网站源码博客2023热点新闻事件
  • 设计感网站有哪些方面翻译公司网站建设多少钱
  • 局门户网站的建设关键词林俊杰的寓意
  • 网站空间和数据库山西建设局网站