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

wordpress页脚小工具居中怎么样优化关键词排名

wordpress页脚小工具居中,怎么样优化关键词排名,云南最大的网络科技公司,兰州 网站建设公司目录 模式简介 介绍 优点 缺点 代码实现 场景说明 实现代码 运行结果 模式简介 观察者模式#xff08;Observer Pattern#xff09;#xff0c;也叫我们熟知的发布-订阅模式。 它是一种行为型模式。 介绍 观察者模式主要关注的是对象的一对多的关系#xff0c; …目录 模式简介 介绍 优点 缺点 代码实现 场景说明 实现代码 运行结果 模式简介 观察者模式Observer Pattern也叫我们熟知的发布-订阅模式。 它是一种行为型模式。 介绍 观察者模式主要关注的是对象的一对多的关系 也就是多个对象依赖于一个对象当该对象的状态发生改变时其他对象都能够收到相应的通知 意图 定义对象间的一种一对多的依赖关系当一个对象的状态发生改变时所有依赖于它的对象都得到通知并被自动更新。主要解决 一个对象状态改变给其他对象通知的问题而且要考虑到易用和低耦合保证高度的协作。如何解决 使用面向对象技术可以将这种关系弱化。 优点 观察者和被观察者是抽象耦合的建立了一套触发机制。 缺点 如果一个被观察者对象有很多的直接和间接的观察者的话通知所有的观察者需要花费很长的时间如果在观察者和被观察者目标之间有循环依赖的话观察目标会触发他们之间的循环调用可能会导致系统崩溃观察者模式没有相应的机制让观察者知道所观察的目标对象是怎么发生变化的而仅仅是知道观察目标发生了变化。 代码实现 场景说明 我们现在有三个观察者和三种消息这三个观察者分别对不同的消息感兴趣 我们实现的话可以简单的设置三个观察者一个主题类被观察者。 这三个观察者可以设置自己喜欢的、感兴趣的消息类型1、2、3。 他们处理收到的消息就是打印一下自己收到了什么消息。 具体实现如下 实现代码 /*observer1 observer2 observer3Subject 主题主题更改应该及时通知相应的观察者去处理相应的事件 */ class Observer // 观察者抽象类 { public://处理消息的接口virtual void handle(int msgid) 0; };//第一个观察者实例 class Observer1 : public Observer { public:void handle(int msgid){switch (msgid){case 1:cout Observer1 recv 1 msg endl;break;case 2:cout Observer1 recv 2 msg endl;break;default:cout Observer1 recv unkonw msg! endl;break;}} }; //第二个观察者实例 class Observer2 : public Observer { public:void handle(int msgid){switch (msgid){case 2:cout Observer2 recv 2 msg endl;break;default:cout Observer2 recv unkonw msg! endl;break;}} }; //第三个观察者实例 class Observer3 : public Observer { public:void handle(int msgid){switch (msgid){case 1:cout Observer3 recv 1 msg endl;break;case 3:cout Observer3 recv 3 msg endl;break;default:cout Observer3 recv unkonw msg! endl;break;}} };//主题类 class Subject { public://给主题增加观察者对象void addObserver(Observer* obser,int msgid){_subMap[msgid].push_back(obser);}//主题检测发生改变通知相应的观察者对象处理事件void dispatch(int msgid){auto it _subMap.find(msgid);if (it ! _subMap.end()){//通过多态实现不同的指向for (Observer* pObser : it-second){pObser-handle(msgid);}}} private://用来保存订阅的消息unordered_mapint, listObserver* _subMap; }; 我们可以看到主题类Subject的数据成员是一个unordered_map。使用这个是因为我们不需要数据是有序的为了提高增删查的速率使用了无序map。 使用map的好处是它作为一个键值对可以存储我们想要的数据类型消息类型订阅此消息类型的观察者们。 并且在主题类Subject的成员方法addObserver中我们使用了一个中括号运算符[]重载的特性 如果当前容器中存有相应的msgid键的话就直接添加对应的值Obser 如果当前容器中没有相应的msgid键的话就直接添加该键并且添加一个默认的值。 运行结果 我们使用如下的代码 void main() {Subject subject;Observer* p1 new Observer1();Observer* p2 new Observer2();Observer* p3 new Observer3();subject.addObserver(p1, 1);subject.addObserver(p1, 2);subject.addObserver(p2, 2);subject.addObserver(p3, 1);subject.addObserver(p3, 3);int msgid 0;for (;;){cout 请输入消息id endl;cin msgid;if (msgid -1)break;subject.dispatch(msgid);//发起通知} } 运行结果如下
http://www.w-s-a.com/news/898338/

相关文章:

  • 推荐做木工的视频网站毕业设计做的网站抄袭
  • 网站导航页面制作wordpress调用文章阅读量
  • app小程序网站开发品牌购物网站十大排名
  • 用wordpress做购物网站龙岩品牌设计
  • 网站开发是指wordpress系统在线升级
  • 网站建设运营的灵魂是什么意思页面跳转中
  • 家政服务网站源码重庆建网站企业有哪些
  • 怎样分析一个网站做的好坏重庆长寿网站设计公司哪家专业
  • 百度助手app下载苏州seo关键词优化排名
  • 17网站一起做 佛山诸城网站建设多少钱
  • 郑州网站建设培训学校泉州做网站设计公司
  • 西峡做网站深圳建筑工务署官网
  • 单县网站惠州seo计费
  • 万网网站建设 优帮云怎样用记事本做网站
  • 注册域名后网站建设百度指数的功能
  • 怎么做伪静态网站山西网站建设设计
  • 做小型企业网站多少钱衡阳市建设局网站
  • 金华专业网站建设公司网站建设空间和服务器方式
  • 自己做的网站在浏览器上显示不安全吗wordpress revolution slider
  • 西安网站建设推广优化搜索引擎营销
  • 互联网站备案管理工作方案 工信部注册深圳公司需要什么条件
  • 网站网站服务器网站建设 物流
  • 国外开发网站手机网站建设制作
  • 怎么把自己做的网站传网上青岛工程建设监理公司网站
  • 网站301跳转效果商丘网站公司
  • 公司网站建设西安网站的架构与建设
  • 食品科技学校网站模板花溪村镇建设银行网站
  • 图片渐隐 网站头部flash地方志网站建设自查报告
  • 深圳做商城网站视觉品牌网站建设
  • 永康电子商务网站建设弹幕网站怎么做