安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

Python设计模式观察者模式

9月9日 醉殇别投稿
  分享主题:Python设计模式之观察者模式
  定义
  观察者模式也叫发布订阅模式,定义了对象之间一对多依赖,当一个对象改变状态时,这个对象的所有依赖者都会收到通知并按照自己的方式进行更新。
  观察者设计模式是最简单的行为模式之一。在观察者设计模式中,对象(主题)维护了一个依赖(观察者)列表,以便主题可以使用观察者定义的任何方法通知所有观察者它所发生的变化。
  举个生活中的小例子:职员们趁老板不在,都在搞着自己与工作无关的事情,同时观察着前台小姐姐,前台小姐姐在老板回来的时候,发布通知让各同事回到工作状态。
  使用场景
  在广播或者发布订阅系统的情形中,你会看到观察者设计模式的用法,它的主要使用场景如下:在分布式系统中实现事件服务。用作新闻机器的框架。股票市场也是观察者模式的一个大型场景。
  主要目标它定义了对象之间的一对多的依赖关系,从而使得一个对象中的任何更改都将自动通知给其他依赖的对象。它封装了主题的核心组件。
  代码实现1、创建观察者类1classWatcher:2初始化具体的成员3definit(self,id,name):4self。idid5self。namename67向具体的成员发送消息的方法8defsend(self,msg):9print(str(self。name)str(self。id)recivethemessageis:msg)2、创建主题类1classSubject:2初始化一个主题列表3definit(self):4self。queues〔〕56将订阅者添加到队列中7defaddqueue(self,sub):8self。queues。append(sub)9returnself。queues1011从订阅的主题里面移除12defremovequeue(self,sub):13self。queues。remove(sub)14self。queues1516发送通知给相关的主题订阅者17defnotice(self,msg):18forqueueinself。queues:19queue。send(msg)2021ifnamemain:22实例化具体的Watcher对象,用于去订阅和接收相关信息23tomWatcher(1001,tom)24tonyWatcher(1002,tony)25jackWatcher(1003,jack)2627实例化Subject对象,定义为添加天气主题28weatherSubject()29weather。addqueue(tom)30weather。addqueue(tony)3132实例化Subject对象,定义为添加军事主题33militarySubject()34military。addqueue(tony)35military。addqueue(jack)3637给订阅者发布天气消息38weather。notice(itsrain)39military。notice(itspeace)4041将tony从weatherandmilitary主题中取消订阅42weather。removequeue(tony)43military。removequeue(tony)4445取消订阅后给剩下的订阅者发布消息46weather。notice(itswindy)47military。notice(itswar)3、执行结果输出1tom1001recivethemessageis:itsrain2tony1002recivethemessageis:itsrain3tony1002recivethemessageis:itspeace4jack1003recivethemessageis:itspeace5tom1001recivethemessageis:itswindy6jack1003recivethemessageis:itswar
投诉 评论

金九银十车圈竞赛白热化!比亚迪汉EV特斯拉Model3小鹏P当前新能源汽车的渗透率上升到12。7,越来越受到市场的认可。众多车企也推出了众多明星车型,而对于小有积蓄的工薪族来说,对20万左右价位接受度更高。最近众多车圈大V对比亚迪汉EV……索尼耳机的缺点就是贵?性价比款其实真不少常常看到有耳机推荐的内容下面有人安利索尼的耳机,确实,索尼的耳机不论是在设计、音质、质量方面都做得很不错。但是也有不少朋友第一反应就是索尼大法好是好,就是贵啊。不得不承认……假如我带着一块太阳能板穿越回古代,我能用它来干什么?躲雨只带一块太阳能板没啥用,都穿越了,就多带点东西吧,供电问题得先解决了,就是太阳能扳:太阳能可以说是取之不尽用之不竭,配合移动电源还能应急。不过移动电源的选择也是……打开算法黑箱从三方面构建算法治理法律法规体系随着大数据、人工智能等信息技术的快速发展,我们正在进入算法经济时代。以深度学习为代表的人工智能算法在互联网信息传播、数字经济发展、信息产业服务等诸多方面发挥了重要作用,产生了溢……Python设计模式观察者模式分享主题:Python设计模式之观察者模式定义观察者模式也叫发布订阅模式,定义了对象之间一对多依赖,当一个对象改变状态时,这个对象的所有依赖者都会收到通知并按照自己……戴尔全新27英寸4K显示器开售携程每周2天居家办公能提高生育【科技犬】今日,戴尔UltraSharp系列新品27英寸4K显示器U2723QE正式开售,售价3999元。显示器支持LG独家的IPSBlack技术,可提高IPS面板……混沌两仪与物理映射何为两仪,网上词条释义是主要为黑白双色,基本如是。更直观抽象地讲,两仪为黑白原初态,状如小球,没有大小。两相纠缠,产生原初力和原初欲。但所处空间依然为混沌态填充的空间。……iPhone12iPhone13一起降价,华为小米都不香了,要说每年最热的智能手机,当属苹果iPhone手机,2021年也是这样。在这个双十一,苹果这边正式放出大招,让iPhone12、iPhone13一起降价,这种景象笔者也是第一次见……周末重大消息,三利好一利空,和新能源基建碳中和医药相关明天开盘,A股迎来三利好一利空,和新能源、光伏、基建、碳中和、医药有关,新风向将变动,关系你的持仓,一起来看一下:一、宁德时代扩张迅速,150亿投资在贵州、福建建厂生产动……2021年我国PCT国际专利申请再次蝉联全球第一看早报,知行情,觅商机!1、亚马逊推出新工具可通过邮件与买家互动亚马逊美国站发布公告称推出的CustomerEngagement工具可帮助品牌卖家创建电子邮件广告,……南卡RunnerPro3深度体验一周它就是我最佳的跑步伴侣作为一名媒体工作者,大部分的时间都在电脑前工作,自己的身体和心理的压力确实很大。因此每周34次的5公里慢跑就成为了一段很好的放松时间,但是在跑步装备的选择上,我却犯了难。作为苹……安徽拥有国家制造业创新中心2家省制造业创新中心38家中安在线中安新闻客户端讯制造业创新中心是实施制造强国战略五项重大工程的首要工程,目标是突破长期制约制造业发展的关键核心共性技术,打通技术产生扩散首次商业化产业化链条,建立科技成……
对平台企业设立反垄断指引,这是深度的管理创新什么无线蓝牙耳机便宜又好用?30003999元手机性价比排名小米11Pro上榜苹果手机的隔空投送怎么使用?三星Flip3第一次用三星手机,第一次用折叠屏,第一感觉太酷人脸识别时候,一定要穿上衣服!不要以为人脸识别就只拍人脸下周资本市场大事提醒你遇到过哪些被白嫖的事情?vivoX70Pro硬件配置堆料在线,为何b站UP主却说是天长江存储全新PCle4。0SSD问世,并宣布全新升级计划9月首款新机官宣9月9日,正式发布,无缘于屏下摄像头麒麟9000库存告急,骁龙888版华为P50Pro马上发布,临摹别人的作品做商用是否构成侵权处理剩饭后的结果。。历史谁最终平定了吕氏的叛乱?绣球花与家居风格的搭配绣球花的风水学应用带着你的叮咛出发cdr软件轮廓图怎么使用?办学造句用办学造句大全6月6日是什么星座农历六月六日什么星座的?你觉得长沙房价5年内会达到什么样?熊猫妈妈听电话的小学语文说课稿酒店小卡片,性感的模特身材,如果你认真那你就输了婴儿床垫的作用

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利