python设计模式 创造者模式-单例模式 温故而知新(一)
2021-05-28 02:01
标签:blog import 内存 init 实例 占用 总线 ref 封装 单例模式创建的类有且仅有一个实例,并且自行实例化向整个系统提供,各个线程对总线的访问只有一个全局访问点,即惟一的实例 场景举例: demo.py文件 另一个py文件中进行import导入 文章来自 Yongchin‘blog yongchin.xyz python设计模式 创造者模式-单例模式 温故而知新(一) 标签:blog import 内存 init 实例 占用 总线 ref 封装 原文地址:https://www.cnblogs.com/semishigure/p/14808852.html什么是单例模式
为什么单例模式
每个服务应用一般都会有个配置文件config.ini,一般是创建一个Config的类来读取配置文件。在编写程序的时候,很多地方都会用到配置文件,这就需要创建很多Config类的实例,这就导致程序中存在多个 Config的实例对象,而这样会严重浪费内存资源。
事实上,Config 这样的类,我们希望在程序运行期间只存在一个实例对象单例模式的优点:
如何编写单例模式
1.使用__new__方式在实例化前进行判断
class Danli:
instance = None
def __new__(cls, *args, **kwargs):
if Danli.instance is None:
Danli.instance = super().__new__(cls)
return Danli.instance
def __init__(self):
pass
d1 = Danli()
d2 = Danli()
print(d1)
print(d2)
<__main__.danli object at><__main__.danli object at>
Process finished with exit code 0
2.把封装的类写在一个py文件中,然后去调用
class Danli:
def __init__(self):
pass
d = Danli()
from demo import d
d1 = d
d2 = d
print(d1)
print(d2)
上一篇:关于二维数组一点小理解
下一篇:java:分块上传 和 合并分块
文章标题:python设计模式 创造者模式-单例模式 温故而知新(一)
文章链接:http://soscw.com/index.php/essay/88461.html