摘要:简单工厂模式工厂模式有一种非常形象的描述,建立对象的类就如一个工厂,而需要被建立的对象就是一个个产品在工厂中加工产品,使用产品的人,不用在乎产品是如何生产出来的。单例模式的单例模式,所谓单例模式就是一个类只能创建一个实例化。
简单工厂模式
工厂模式有一种非常形象的描述,建立对象的类就如一个工厂,而需要被建立的对象就是一个个产品;在工厂中加工产品,使用产品的人,不用在乎产品是如何生产出来的。
从软件开发的角度来说,这样就有效的降低了模块之间的耦合。
简单工厂的作用是实例化对象,而不需要客户了解这个对象属于哪个具体的子类。
class car: """interface as Product""" def drive(self): pass class BMW(car): """Concrete Product""" def __init__(self,carname): self.__name=carname def drive(self): print("Drive the BMW as "+self.__name) class Benz(car): """Concrete Product""" def __init__(self,carname): self.__name=carname def drive(self): print("Drive the Benz as "+self.__name) class driver: """Factory also called Creator""" def driverCar(self,name): if name=="BMW": return BMW("BMW") elif name=="Benz": return Benz("Benz") carname=input("please input BMW Benz :") dier=driver() d=dier.driverCar(carname) d.drive()单例模式
python的单例模式,所谓单例模式就是一个类只能创建一个实例化。
哪些地方需要用到单例模式,其实想一想有很多,比如
1.Python的logger就是一个单例模式,用以日志记录
2.Windows的资源管理器是一个单例模式
3.线程池,数据库连接池等资源池一般也用单例模式
4.网站计数器
当每个实例都会占用资源,而且实例初始化会影响性能,这个时候就可以考虑使用单例模式,它给我们带来的好处是只有一个实例占用资源,并且只需初始化一次
#通过装饰器实现单例模式 def singleton(cls, *args, **kw): instances = {} #类变量字典 def _singleton(): #判断 cls 是否 存在字典中 if cls not in instances: #如果不在字典中,则添加进来 instances[cls] = cls(*args, **kw) #在的话就return返回 return instances[cls] return _singleton @singleton #b=singleton(a)() 等同于 @singleton class a: def shwo(self): print("showshow") a1=a() #实例化对象1 a2=a() #实例化对象2 print(a1) #如果不是单例模式创建,这个地方打印两次结果不同 print(a2) a1.shwo() a2.shwo()
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/41213.html
摘要:可以对文件进行查看创建等功能,可以对文件内容进行添加修改删除,且所使用到的函数在为,在同时支持和,但是在系列移除了函数。在及以后,又支持同时对多个文件的上下文进行管理,即原文链接 Python可以对文件进行查看、创建等功能,可以对文件内容进行添加、修改、删除,且所使用到的函数在Python3.5.x为open,在Python2.7.x同时支持file和open,但是在3.5.x系列移除...
摘要:但是语言并没有成功,究其原因,认为是其非开标识放造成的。已经成为最受欢迎的程序设计语言之一。年月,该语言作者在邮件列表上宣布将于年月日终止支持。其中很重要的一项就是的缩进规则。设计定位的设计哲学是优雅明确简单。 文本标签 换行标签 -- br 是单标签,意味着它没有结束标签。起强制换行作用 段落中的文字段落中的文字段落中的文字 水平分割线 -- hr 与br相同,也是单标签。可用来区分...
摘要:希望引以为戒郑传装饰模式如果你了解,你肯定听过装饰器模式。在面向对象中,装饰模式指动态地给一个对象添加一些额外的职责。就增加一些功能来说,装饰模式比生成子类更为灵活。 漫谈 如果作为一个Python入门,不了解Python装饰器也没什么,但是如果作为一个中级Python开发人员,如果再不对python装饰器熟稔于心的话,那么可能并没有量变积累到质变。 我以前也看过很多讲python 装...
摘要:该系列文章入门,编程基础概念介绍变量,条件,函数,循环中的数据类型,,,,在中创建对象学一门编程语言正在变得越来越容易,只要念过高中甚至是初中小学,能熟练聊和懂得一点点软件的人,入门一门编程语言都不在话下。 该系列文章: 《python入门,编程基础概念介绍(变量,条件,函数,循环)》 《python中的数据类型(list,tuple,dict,set,None)》 《在python...
摘要:作者宋天龙来源科技大本营导语一切都始于年的那个圣诞节,的诞生并不算恰逢其时,它崛起充满了机遇巧合,也有其必然性。年的圣诞节,开始编写语言的编译器。年发布的标志着的框架基本确定。年月发布了系列的最后一个版本,主版本号为。 showImg(https://segmentfault.com/img/remote/1460000019862276); 作者 | 宋天龙来源 | AI科技大本营 ...
阅读 1237·2023-04-25 19:10
阅读 1103·2021-09-10 10:50
阅读 2996·2021-09-02 15:21
阅读 1336·2019-08-30 15:52
阅读 1646·2019-08-30 13:56
阅读 2038·2019-08-30 12:53
阅读 1820·2019-08-28 18:22
阅读 2063·2019-08-26 13:47