游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

设计模式14观察者模式

  观察者模式
  定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。
  这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
  什么时候使用观察者模式
  当一个对象的改变需要同时改变其他对象的时候,而且它不知道具体有多少对象有待改变时,应该考虑使用观察者模式。
  观察者模式所做的工作其实就是在解除耦合。让耦合的双方都依赖于抽象,而不是依赖于具体。从而使得各自的变化都不会影响另一边的变化。
  观察者模式的不足
  如果其他人事先写好的类,如何再去实现Observer的Update接口呢?
  观察者模式示例代码includeiostreamincludestringincludevectorusingnamespacestd;classBaseObserver{public:stringstate;stringmname;virtualvoidUpdate(conststringn,conststringst)0;};classBaseSubject{public:vectorBaseObserverobservers;stringsubState;stringmname;virtualvoidAttach(BaseObserver)0;virtualvoidDetach(BaseObserver)0;virtualvoidNotify()0;};classSubjectA:publicBaseSubject{public:SubjectA(conststringname){mnamename;};virtualvoidAttach(BaseObserverob)override{observers。pushback(ob);}virtualvoidDetach(BaseObserverob)override{for(autoiterobservers。begin();iter!observers。end();){if(iterob){iterobservers。erase(iter);}else{iter;}}}virtualvoidNotify()override{for(autop:observers){pUpdate(mname,subState);}}};classObserver:publicBaseObserver{public:Observer(conststringname){mnamename;};virtualvoidUpdate(conststringn,conststringst)override{statest;coutselfNmae:mnamestate:stateeventname:nendl;}};intmain(intargc,charconstargv〔〕){Observerob1(ob1);Observerob2(ob2);SubjectAsub(subjectA);sub。Attach(ob1);sub。Attach(ob2);sub。Detach(ob1);sub。subState状态改变了;sub。Notify();return0;}
  公众号:cppyang
  个人微信:yangxgcxy
  今日头条:程序员杨小哥
  B站:https:space。bilibili。com473029051
  知乎:https:www。zhihu。compeoplecppyang

瘦煤的解释及造句瘦煤拼音【注音】:shoumei瘦煤解释【意思】:烟煤的一种,炭化程度较高,供炼焦用,但结焦性较差,单用这种煤炼的焦强度小,不耐磨,气孔少,因此多用来和其他烟……一年级语文比尾巴的教学反思在孩子眼中,动物是他们的最爱。本课用三问三答的形式,介绍了六种动物尾巴的特点。课文琅琅上口,极富儿童情趣语言,能激起学生朗读欲望,还能引起学生观察其他动物尾巴特点的兴趣。本节课……科学和思想的力量人教课标版历史学科九年级上学期历史教案第八单元璀璨的近代文化人教课标版历史学科九年级上学期历史教案第八单元璀璨的近代文化第22课科学和思想的力量教学目标一。知识目标……iu教案设计〔教学内容〕本课共有四部分内容。第一部分是情境图,主题是乐乐参观水族馆。这天,东乐和同学们到水族馆里参观。小鱼成群结对的在水里游来游去,一位潜水员穿着潜水衣,正在和……改变生态瓶的教学反思说实在话,在上完这堂《改变生态瓶》课的时候我的心情是沉重的,沉重的原因在于很多学生悲痛地告诉我:他的小鱼死了。学生很宝贝自己的生态瓶,我相信他们的照料也是非常细心的,作为全国绿……香甜的水果教学反思范文上完《香甜的水果》一课,我内心久久不能平静,同学们的表现和精彩的回答让我激动不已,这节课让同学们有了愉快的积极的情感体验,拉近了我和同学们的距离,增进了我和同学们之间的感情,真……2019年暑假作业四年级英语答案标准暑假到了,为帮助同学们更好完成四年级英语暑假作业答案,小编为大家整理最新暑假作业及答案如下:一、选出不同类的单词。()1。a。schoolb。penc。pencil……祖母阅读理解及参考答案(1)我的童年,是和祖母一起度过的。(2)生活,就像坡地上的蒲公英,无奈的苦涩中,总有些幽香。那时,山晨的日子清淡,一包蓝靛,就是农村的全部颜色。祖母那架老掉牙的纺车,缠……3。5等比数列的前n项和(第一课时)教学目的:1掌握等比数列的前n项和公式及公式证明思路2会用等比数列的前n项和公式解决有关等比数列的一些简单问题。教学重点:等比数列的前n项和公式推导教学难点:灵活应用公式解决有……小学语文教学设计neninnenin教学设计教学过程:一、游戏复习,情境导入1小朋友,上节课我们认识了几位好朋友,你们看,谁还记得它们?老师出示卡片:aneninn?nn(开火车……八年级地理上册河流与湖泊第一课时教学反思本节课主要从两个方面着重做出了讲解:第一,河流与湖泊在我国的分类(内流与外流),第二,河流与湖泊的水文特征。其中要穿插讲解地形、气候对河流的影响。第一部分主要通过读图,查……威尼斯的小艇教学设计一、教学目标:1、使学生了解在世界闻名的水上城市威尼斯,小艇是重要的交通工具,了解威尼斯的风土人情。2、能合并几层意思归纳第二、四段的段意。3、练习有感情的朗……
要玩还得等任天堂宣布马里奥赛车手游推迟到今年夏天IT之家1月31日消息去年的这个时候,任天堂正式宣布全新的移动版《马里奥赛车Tour》游戏正在开发中,任天堂表示,这款游戏会在未来的13个月之内发布。眼看这款游戏就要和大……三星电子及关联企业股价上涨,因李健熙去世引发重组猜想10月26日消息,据国外媒体报道,三星电子及其关联企业股票周一上涨。分析师表示,三星会长李健熙周日去世,引发了公司重组和股权出售、更高的股息等等猜想,引发股价上涨。……音乐游戏数高楼活动目标:1、学唱歌曲《数高楼》,唱清歌词,念准数高楼时的节奏型。2、在掌握歌曲的基础上,学玩音乐游戏数高楼。3、边唱歌边与同伴按《数高楼》的节奏合作用双拳逐……米家互联网洗碗机曝光,接入小爱同学IT之家2月23日消息IT之家从小米生态链总经理屈恒微博了解到,小米将于明天发布一款新产品,屈恒表示这可能是米粉呼声最高的新产品。从官方公布的海报配文来看,这是一款清洁用……动手做做看第一课时教学设计一、教学目的、要求1、正确、流利、有感情地朗读课文,感受故事的趣味,并从故事中受到启发。2、学习本课生字,认识生字。二、教学重点、难点1、有感情地朗读课……国内最好公务机湾流G550被砸大洞,维修费逼近两亿感谢IT之家网友刺客的线索投递!IT之家2月24日消息去年4月25日,停放在成都双流国际机场的一架顶级公务机湾流G550飞机被天降异物砸中右机翼并击穿,本月20日民航四川……网易北京全员核酸检测为阴性,园区环境检测为阴性IT之家1月23日消息1月22日,居住在大兴区天宫院街道融汇社区的网易北京某员工被诊断为新冠肺炎确诊病例,之后网易公司通报全员核酸检测并居家办公。网易北京称,于1月22日……安卓版Chrome82将通过新的Cookies设置改善隐私IT之家3月18日消息据外媒报道,日前安卓版Chrome浏览器在隐私设置方面给了用户更大的自由,谷歌在安卓版Chrome82Canary中添加了一个flag标志,让用户对Coo……谷歌翻译推出实时语音翻译功能暂不能用来做英语听力IT之家3月18日消息据XDA报道,谷歌于几个月前开始测试一项名为持续翻译(ContinuousTranslation)的新功能,该功能于今年1月面向公众,目前该功能名为转录(……上百名RiotGames员工罢工抵制性别歧视与强制仲裁IT之家5月7日消息关注拳头动态的人也许知道,一年以来,拳头公司一直处于性骚扰与性别歧视争议的漩涡中。这也引起了拳头公司内部员工的不满。近日,超过150名拳头公司(RiotGa……鸟的家族大班主题活动说课稿一、说教材:1、教材价值:鸟是动物世界中的一个大的家族。在厦门,到处都可以看到鸟的身影,听到鸟的叫声。而且教育的资源也很丰富:家庭养鸟,花鸟市场,公园,厦门的白鹭洲……阿里云开发免费电子出入通行证系统,手机扫码完成出入登记IT之家2月10日消息根据阿里云官方微博的消息,阿里云开发了免费电子出入通行证和智能外呼管理系统。官方称,用手机扫一下二维码,即可完成出入登记;通过智能外呼应用,社区工作人员可……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网