今天就跟大家聊聊有关Python中观察者模式的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float(浮点型)。2.字符串,分别是str类型和unicode类型。3.布尔型,Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。4.列表,列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型。5. 元组,元组用”()”标识,内部元素用逗号隔开。6. 字典,字典是一种键值对的集合。7. 集合,集合是一个无序的、不重复的数据组合。
观察者模式的一个demo:
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大话设计模式 设计模式——观察者模式 观察者模式又叫做发布-订阅模式 (Publish Subscribe Pattern):定义了一种一对多的关系,让多个观察对象同时监听一个主题对象,当主题对象状态发生变化时会通知所有观察者,是它们能够自动更新自己 使用场景:当一个对象的改变需要同时改变其他对象的时候,而且它不知道具体有多少对象待改变 """ #抽象通知者类 class Subject(object): def attach(self, observer): pass def detach(self,observer): pass def notify(self): pass #具体通知者类 class Boss(Subject): def __init__(self): self.observer_list = [] self.subject_status = '' def attach(self, observer): self.observer_list.append(observer) def detach(self,observer): self.observer_list.remove(observer) def notify(self): for item in self.observer_list: item.update() #抽象观察者类 class Observer(object): def __init__(self, name, publish): self.name = name self.publish = publish def update(self): pass #具体观察者类-看股票的人 class StockObserver(Observer): def update(self): print self.publish.subject_status,self.name,'关闭股票行情,继续工作' #具体观察者类-看NBA的人 class NbaObserver(Observer): def update(self): print self.publish.subject_status,self.name,'关闭NBA,继续工作' if __name__ == "__main__": publisher = Boss() stocker = StockObserver('Andy',publisher) nbaer = NbaObserver('Tracy',publisher) publisher.attach(stocker) publisher.attach(nbaer) publisher.subject_status = '本老板回来了' publisher.notify()
运行结果:
本老板回来了 Andy 关闭股票行情,继续工作
本老板回来了 Tracy 关闭NBA,继续工作
上面类的设计如下图:
看完上述内容,你们对Python中观察者模式的原理是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。