python設計模式 單例模式

2022-03-08 21:25:58 字數 1715 閱讀 4450

**的設計模式共有25種,設計模式其實是**無關的。其目的是基於oop的思想,不同應用場景應用不同的設計模式,從而達到簡化**、利於擴充套件、提示性能等目的。本文簡述python實現的單例模式場景。

簡而言之,單例模式的應用場景是所有例項物件封裝的資料都相同的場景。在這樣的場景下應用單例模式可以減少重複建立物件,從而節約記憶體。

例如,在資料庫併發連線場景中,每次連線所用到的ip、埠,使用者名稱、密碼等相同,由於每次單獨連線資料庫耗時較長,所以通常會如下圖,先建立個連線池,該連線池已與資料庫建立好鏈結,其他使用者想訪問資料時先連線到此連線池,由連線池分配鏈結,從而節約時間。 此處連線池分配連線id可簡化為下述**:

由上述簡化的**可知,每次有客戶端連線時,都會建立新的物件,以呼叫其get_connection方法。在這種重複建立物件,且物件中封裝的資料相同時,即可利用單例模式,節約記憶體提公升效能。

單例模式示例:

1

class connectionpool:

2 __instance = none

3def __init__(self):

4 self.addr = '127.0.0.1'

5 self.port = 8008

6 self.name = 'sql'

7 self.conn_list = [1,2,3,4,5,6,7,8,9,10]

8 @staticmethod

9def get_instance():

10if connectionpool.__instance:

11return connectionpool.__instance

12else:

13 connectionpool.__instance == connectionpool()

14return connectionpool.__instance

15def get_connection(self):

16 r = random.randrange(1, 11)

17return r

以上示例,通過乙個私有變數,乙個靜態方法 get_instance()實現了一次建立物件,多次連線。

總結下:

1. 單例只有乙個例項

2. 靜態方法、靜態字段

3. 所有封裝資料都一樣時用單例模式

python設計模式 單例模式

一 什麼是單例模式單例模式 singleton pattern 是一種常用的軟體設計模式,該模式的主要目的是確保某乙個類只有乙個例項存在。當你希望在整個系統中,某個類只能出現乙個例項時,單例物件就能派上用場。二 實現單例的方法 三 模組python 模組在第一次匯入時,會生成 pyc 檔案,當第二次...

python設計模式 單例模式

一 什麼是單例模式 單例模式 singleton pattern 是一種常用的軟體設計模式,該模式的主要目的是確保某乙個類只有乙個例項存在。當你希望在整個系統中,某個類只能出現乙個例項時,單例物件就能派上用場。二 實現單例的方法 三 模組 python 模組在第一次匯入時,會生成 pyc 檔案,當第...

Python設計模式 單例模式

單例模式 確保乙個類只有乙個例項,並且提供乙個訪問它的全域性方法 class singleton object instance none isfirstinit false def new cls,name if not cls.instance singleton.instance super ...