python class 單例的實現

2021-09-17 03:06:01 字數 872 閱讀 6119

『』』

單例的實現

『』』class person(object):

『』『這個類是單例類』』』

__instance = none

『』『這個類屬性儲存的是例項物件』』』

defnew(cls, *args, **kwargs):

if not cls.__instance:

#如果__instance沒有儲存例項物件

cls.__instance = super(person, cls).new(cls, *args, **kwargs)

return cls.__instance

ifname== 『main』:

zhang = person()

print(id(zhang))#id()指向物件的記憶體位址

zhang2 = person()

print(id(zhang2))

優點:1、在單例模式中,活動的單例只有乙個例項,對單例類的所有例項化得到的都是同樣的乙個例項,確保所有的物件訪問的乙個例項

2、提供了對唯一例項的受控訪問

3、記憶體中只有乙個物件,節約系統資源

4、可以實現可變數目的例項

5、避免對資源的多重占用

缺點:1、不適用變化的物件,單例會引起資料錯誤

2、擴充套件有困難

3、開銷問題

應用場景:

資源管理類一般設計成單例模式

需要頻繁例項化然後銷毀的物件

建立物件耗時或者耗費資源過多但又經常用到的物件

有狀態的工具類物件

頻繁訪問資料庫或者檔案的物件

單例 Singleton 模式的餓漢懶漢式實現

設計模式是在大量的實踐中總結和理論化之後優選的 結構 程式設計風格 以及解決問題的思考方式。我們聽說比較多的就是單例模式,工廠模式,模式。單例模式,或者叫單例設計模式,就是採用一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項的方法。所以這就要求我們把類...

單例 ,真正的單例

單例模式是24種設計模式中的一種,給人的第一反應是乙個類只有乙個例項,非常好理解。單例模式的優點是減少記憶體開銷,避免資源的多重占用,提供全域性訪問點,嚴格控制訪問,也有缺點沒有介面擴充套件困難。單例模式應用也非常的廣泛,string,mybatis等框架中都有大量的運用。大家也很熟悉什麼懶漢模式,...

設計模式之單例模式 Singleton C 實現

特點 1.建構函式 私有化,因此不能直接定義乙個該類的物件 private csingle 2.定義乙個型別為 該類本身的指標 的乙個靜態成員 static csingleton m singleinstance 3.定義乙個返回型別為 該類本身的指標 的乙個靜態成員函式 static csingl...