單例設計模式

2021-09-28 18:40:20 字數 1306 閱讀 7360

class

singleton()

:#單例

__instance =

none

#類屬性保護物件

def__new__

(cls,

*args,

**kwargs)

:#魔術方法,例項物件前呼叫,用在__init__之前

if cls.__instance is

none

:#給物件分配記憶體

cls.__instance =

super()

.__new__(cls)

#自己寫的類需要繼承父類的__new__

return cls.__instance

else

:return cls.__instance

p1 = singleton(

)print(id

(p1)

)p2 = singleton(

)print(id

(p2)

)

class

singleton()

: __instance =

none

#類屬性保護物件

__isfirst =

true

def__new__

(cls,

*args,

**kwargs)

:if cls.__instance is

none

:#給物件分配記憶體

cls.__instance =

super()

.__new__(cls)

return cls.__instance

else

:return cls.__instance

def__init__

(self,n)

:if self.__isfirst:

self.n = n

self.__isfirst =

false

print

('__init__'

)p1 = singleton(2)

print(id

(p1)

)p2 = singleton(3)

print(id

(p2)

)print

(p2.n)

所謂單例也就是⼀個類只⽣成⼀個物件,⽆論你例項化多少物件,都是同⼀個物件

應⽤場景:資料庫操作類,⽂件操作類等,可以減少資源的佔⽤

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

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

設計模式 單例設計模式

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

設計模式 單例設計模式

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