建立型模式 單例模式

2021-10-23 22:49:22 字數 1572 閱讀 2369

sqlsessionfactory物件是執行緒安全的,它一旦被建立, 在整個應

用執行期間都會存在。如果我們多次地建立同乙個資料庫的sqlsessionfactory,那麼此資料庫的資源將很容易被耗盡。為了解決此問題,通常每-個資料庫都會只對應乙個sqlsessionfactory,

所以在構建sqlsessionfactory例項時,建議使用單列模式。

今天我們就來談談單例模式

這種模式涉及到乙個單一的類,該類負責建立自己的物件,同時確保只有單個物件被建立(只建立乙個物件)。這個類提供了一種訪問其唯一的物件的方式,可以直接訪問,不需要例項化該類的物件。

也就是說:

目的:保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。

主要方法:乙個全域性使用的類頻繁地建立與銷毀。

何時使用:當您想控制例項數目,節省系統資源的時候。

如何解決:判斷系統是否已經有這個單例,如果有則返回,如果沒有則建立。

關鍵**:建構函式是私有的。

應用例項:

1、乙個班級只有乙個班主任。

2、windows 是多程序多執行緒的,在操作乙個檔案的時候,就不可避免地出現多個程序或執行緒同時操作乙個檔案的現象,所以所有檔案的處理必須通過唯一的例項來進行。

3、一些裝置管理器常常設計為單例模式,比如乙個電腦有兩台印表機,在輸出的時候就要處理不能兩台印表機列印同乙個檔案。

優點:

1、在記憶體裡只有乙個例項,減少了記憶體的開銷,尤其是頻繁的建立和銷毀例項(比如管理學院首頁頁面快取)。

2、避免對資源的多重占用(比如寫檔案操作)。

**缺點:**沒有介面,不能繼承,與單一職責原則衝突,乙個類應該只關心內部邏輯,而不關心外面怎麼樣來例項化。

使用場景:

1、要求生產唯一序列號。

2、web 中的計數器,不用每次重新整理都在資料庫裡加一次,用單例先快取起來。

3、建立的乙個物件需要消耗的資源過多,比如 i/o 與資料庫的連線等。

單例模式的幾種實現方式

1、懶漢式,執行緒不安全

public

class

singleton

public

static singleton getinstance()

return instance;

}}

2、餓漢式

public

class

singleton

public

static singleton getinstance()

}

建立型模式 單例模式

餓漢式 package com.hfview.designmode.signle 1.餓漢式 就是在初始化成員變數的時候就獲取例項物件 2.public class signlemode private signlemode 懶漢式 package com.hfview.designmode.sig...

建立型模式 單例模式

概述 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。適用性 當類只能有乙個事例而且客戶可以從乙個眾所周知的訪問點訪問它時。當這個唯一事例應該是通過子類化可擴充套件的,並且客戶應該無需更改 就能使用乙個擴充套件的例項時。參與者 singleton 定義乙個instance操作,允許客戶訪問它...

建立型模式 單例模式

1.乙個類只能建立乙個物件 2.應用 主要應用與資料庫應用,可以避免大量的new操作消耗資源 3.uml類圖 user 何曉巨集 date 2018 9 27 time 15 48 namespace singleton class singleton 判斷 instance是否為空,為空則新建乙個...