Python進階之:單例模式實現方法彙總

# -*- coding: utf-8 -*-
# @File  : 單例模式.py
# @Author: dianxiaoer
# @Date  : 2019/12/20
# @Desc  :

'''單例模式(Singleton Pattern)是一種常用的軟件設計模式,該模式的主要目的是確保某一個類只有一個實例存在。當你希望在整個系統中,某個類只能出現一個實例時,單例對象就能派上用場。
比如,某個服務器程序的配置信息存放在一個文件中,客戶端通過一個 AppConfig 的類來讀取配置文件的信息。
如果在程序運行期間,有很多地方都需要使用配置文件的內容,也就是說,很多地方都需要創建 AppConfig 對象的實例,這就導致系統中存在多個 AppConfig 的實例對象,
而這樣會嚴重浪費內存資源,尤其是在配置文件內容很多的情況下。事實上,類似 AppConfig 這樣的類,我們希望在程序運行期間只存在一個實例對象。
'''
# 多種方式實現單例
# 1、使用模塊
'''
其實,Python 的模塊就是天然的單例模式,因爲模塊在第一次導入時,會生成 .pyc 文件,當第二次導入時,就會直接加載 .pyc 文件,而不會再次執行模塊代碼。
因此,我們只需把相關的函數和數據定義在一個模塊中,就可以獲得一個單例對象了。如果我們真的想要一個單例類,可以考慮這樣做
'''
# mysingleton.py

# class MySingleton(object):
#     def foo(self):
#         pass
#
# mysingleton = MySingleton()
#
# # 如何使用呢?將上面的代碼保存在文件 mysingleton.py 中,然後這樣使用:
#
# from mysingleton import MySingleton
#
# mysingleton.foo()

# 2、使用__new__
# 爲了使類只能出現一個實例,我們可以使用 __new__ 來控制實例的創建過程,代碼如下:

# class Singleton(object):
#     _instance = None
#     def __new__(cls,
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章