單例設計模式

2022-07-10 19:51:07 字數 1001 閱讀 9390

舉個常⻅的單例模式例⼦,我們⽇常使⽤的電腦上都有⼀個**站,在整個作業系統中,**站只能有⼀個例項,整個系統都使⽤這個唯⼀的例項,⽽且**站⾃⾏提供⾃⼰的例項。因此**站是單例模式的應⽤。

確保某⼀個類只有⼀個例項,⽽且⾃⾏例項化並向整個系統提供這個例項,這個類稱為單例類,單例模式是⼀種物件建立型模式。

class

singleton:

__instance =none # 類屬性

__is_first =true

def __new__(cls, *args, **kwargs):

if cls.__instance is

none:

# 申請記憶體,建立乙個物件,並把物件的型別設定為cls

cls.__instance = object

.__new__(cls)

return

cls.__instance

def __init__(self, a, b):

ifself.__is_first:

self.a =a

self.b =b

self.__is_first =false

# 呼叫__new__方法申請記憶體

# 如果不重寫__new__方法,會呼叫object的__new__方法

# object的__new__方法會申請記憶體,如果重寫了__new__方法,需要自己手動申請記憶體

s1 = singleton('

呵呵', '

嘿嘿嘿'

)s2 = singleton('

哈哈', '

嘻嘻嘻'

)print(s1.a, s2.a) # 呵呵 呵呵

print(s1.b, s2.b) # 嘿嘿嘿 嘿嘿嘿

單例設計模式(餓漢單例設計模式 懶漢單例設計模式)

1.什麼是單例 單例的意思是乙個類永遠只存在乙個物件,不能建立多個物件。2.為什麼要用單例 開發中有很多的物件我們只需要乙個,例如虛擬機器物件,任務管理器物件 物件越多越佔記憶體,有時候只需要乙個物件就可以實現業務,單例可以節省記憶體空間。3.如何實現單例 單例的實現方式有 餓漢單例設計模式 通過類...

設計模式 單例設計模式

歷史 最早是建築學領域的模式,然後gof四人由其引申到編碼方面,總結了23種設計模式 設計模式 解決某一類事情最行之有效的方法 2.1 體現 餓漢式,保證物件的唯一性 class singleton 私有化建構函式禁止該類建立物件 private static singleton st new si...

設計模式 單例設計模式

單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。即乙個類只有乙個物件例項 單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。單例設計模式 解決的問題 可以保...