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

模板建站公司不备案的网站很慢

模板建站公司,不备案的网站很慢,深圳网站设计go,wordpress ad widget本文介绍观察者模式以及使用函数式编程替代简单的策略模式。 观察者模式 观察者模式是一种行为型设计模式#xff0c;它定义了一种一对多的依赖关系#xff0c;当一个对象的状态发生改变时#xff0c;其所有依赖者都会收到通知并自动更新。 当对象间存在一对多关系时#…本文介绍观察者模式以及使用函数式编程替代简单的策略模式。 观察者模式 观察者模式是一种行为型设计模式它定义了一种一对多的依赖关系当一个对象的状态发生改变时其所有依赖者都会收到通知并自动更新。 当对象间存在一对多关系时则使用观察者模式Observer Pattern。比如当一个对象被修改时则会自动通知依赖它的对象。观察者模式属于行为型模式。 简单来说观察者模式需要多个对象观察同一个对象被观察的对象称为Subject主题Subject需要完成观察者的注册attach注销detach和通知notify三个操作。 首先实现一个公共的Observer父类这个父类只有一个纯虚函数用来更新自身状态 struct Observer { public:virtual void update() 0; };两个具体的类实现 update 函数 struct ConcreteObserver : Observer { public:void update() override{std::cout State updated! std::endl;} };struct ConcreteObserver2 : Observer { public:void update() override{std::cout State updated! 2 std::endl;} };接下来实现被观察者公共类包含添加、删除、通知所有观察者三个接口 struct Subject { public:virtual void attach(Observer *observer) 0;virtual void detach(Observer *observer) 0;virtual void notify() 0; };具体的被观察者类实现这三个接口 struct ConcreteSubject : Subject { public:void attach(Observer *observer) override{observers.push_back(observer);}void detach(Observer *observer) override{for (auto it observers.begin(); it ! observers.end(); it){if (*it observer){observers.erase(it);break;}}}void notify() override{for (auto observer : observers){observer-update();}}private:std::vectorObserver * observers; };测试代码如下 int main() {ConcreteSubject subject;ConcreteObserver observer1;ConcreteObserver2 observer2;subject.attach(observer1);subject.attach(observer2);subject.notify();subject.detach(observer1);subject.notify(); }函数式编程下的观察者模式 首先需要介绍下C语言的函数指针。所谓函数指针即定义一个指向函数的指针变量格式如下 typedef void (*Callback)();这样就定义了一个变量名为Callback的指针变量指向一个参数为void返回值也为void的函数。我们用这种指针变量就能将整个观察者类改成函数。 两个观察者函数 void callback1() {std::cout State updated! std::endl; }void callback2() {std::cout State updated! 2 std::endl; }被观察的类。原先调用观察者类的地方全部改为函数调用 struct ConcreteSubject { public:void attach(Callback callback){observers.push_back(callback);}void detach(Callback callback){for (auto it observers.begin(); it ! observers.end(); it){if (*it callback){observers.erase(it);break;}}}void notify(){for (auto observer : observers){observer();}}private:std::vectorCallback observers; };观察者模式与回调 我给函数指针起名为Callback。事实上当只有一个观察者的时候观察者模式的机制就等同于回调模式。因此可以认为回调模式是一种特殊的观察者模式。
http://www.pierceye.com/news/814990/

相关文章:

  • 石台做网站策略网页游戏排行榜
  • 注册网站怎么做网站深圳网站设计公司怎么样
  • 网站备案后有什么好处个人主页网页设计
  • 网站搭建上海wordpress主题范例
  • 网站内容建设出现的问题马鞍山人才网
  • 上海正规做网站公司电话演示 又一个wordpress站点
  • 建设银行网站特色完整网站开发视频教程
  • 株洲做网站渠道电话设计师培训生招聘
  • 四川阿坝建设招标网站wordpress调整文章编辑界面
  • 福州seo计费优化设计的答案
  • 网站建设教程网什么是oa系统软件
  • 建设一个网站app需要多少钱哪个做问卷网站佣金高
  • 宁夏网站设计公司网页视频怎么下载ios
  • 滁州建设厅网站工程建设施工企业质量管理规范
  • 从事网站建设的职业wordpress 外网
  • 百度百度上海百度seo
  • 山西网站的公司广东省住房与城乡建设厅网站
  • 怎么查看网站是用什么编程语言开发的品牌软文范文
  • 能够沟通业务的网站wordpress 主题 恢复
  • 动态域名做网站在线查询企业
  • 绍兴企业网站推广建设通是什么网站
  • 网站设计制作太原抖音seo怎么做的
  • 北京网站代理备案上海跨境电商网站开发公司排名
  • 您的网站未备案 或者原备案号被取消开发一个微信小程序多少钱
  • 如何用记事本做网站南宁做网站哪家好
  • 优秀网站首页百度账号怎么改名字
  • 杭州做网站排名软件碧桂园房地产最新消息
  • 上传网站空间天津专门做网站的公司
  • 无锡企业做网站大庆油田内网主页网址
  • 网站开发合同 下载山西正规网站建设报价公司