語言是共通的,想要用不同語言實現單例模式,首先要清楚什麼是單例模式,單例模式即乙個類有且僅有乙個例項,那麼通過python怎麼實現乙個類只能有乙個例項呢。
首先先建立乙個類,比如宇宙只有乙個地球
class earth:
pass
a = earth()
print(id(a))
b = earth()
print(id(b))
執行結果如下:
通過列印例項的id可以發現,地球類預設建立了兩個例項。
那麼怎麼能夠讓類只建立乙個例項,而後再建立的例項是返回上一次的物件的引用呢?
我們了解到,python中,乙個類建立物件例項是通過呼叫父類object的 __new__(cls)方法來建立物件的
我們可以通過重寫 __new__(cls)方法去實現類只建立乙個例項
**如下:
class earth(object):
__instance=none #定義乙個類屬性做判斷
def __new__(cls):
if cls.__instance==none:
#如果__instance為空證明是第一次建立例項
#通過父類的__new__(cls)建立例項
cls.__instance==object.__new__(cls)
return cls.__instance
else:
#返回上乙個物件的引用
return cls.__instance
a = earth()
print(id(a))
b = earth()
print(id(b))
執行結果如下:
可以看出它們id相同,是同乙個物件。
原文:
手寫單例,不心慌
單例模式是最常用到的設計模式之一,熟悉設計模式的朋友對單例模式都不會陌生。一般介紹單例模式的書籍,文章都會提到餓漢式和懶漢式這兩種實現方式。但是除了這兩種方式,實際上還有很多中方式。單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。許多時候整個系統只需要擁有乙個的全域性物件...
iOS開發 手寫單例
import singleinstance.h implementation singleinstance 類方法命名規範 share類名 default類名 類名 id sharedinstance return instance 也可以使用一次性 static dispatch once t o...
python 單例 Python單例
01.單例設計模式 設計模式 設計模式 是 前人工作的總結和提煉,通常,被人們廣泛流傳的設計模式都是針對 某一特定問題 的成熟的解決方案 使用 設計模式 是為了可重用 讓 更容易被他人理解 保證 可靠性 單例設計模式 目的 讓 類 建立的物件,在系統中 只有 唯一的乙個例項 每一次執行 類名 返回的...