1. 程式人生 > >測開之路二十一:單例模式

測開之路二十一:單例模式

存儲 對象實例 style alt image 初始 -s 屬性 spa

單例模式

單例模式,是一種常用的軟件設計模式。在它的核心結構中只包含一個被稱為單例的特殊類。通過單例模式可以保證系統中,應用該模式的一個類只有一個實例。即一個類只有一個對象實例。

初始化一個對象

技術分享圖片

在不同的地方調用,並查看對象的id,id相同,則說明這是同一個對象

技術分享圖片

技術分享圖片

修飾器的形式

單例函數

技術分享圖片

def singleton(cls, *args, **kw):
‘‘‘
采用修飾器實現單例模式,修飾器的第一個參數應該是被修飾的類。
可以采用字典來存儲類實例,類作為key,實例作為值。
‘‘‘
_instance = {}
def get_instance():

if cls not in _instance:
_instance[cls] = cls(*args, **kw)
return _instance[cls]
return get_instance

技術分享圖片

加個單例修飾

技術分享圖片

類的形式實現

技術分享圖片

用屬性

技術分享圖片

測開之路二十一:單例模式