單例設計模式

2021-10-21 21:21:33 字數 1175 閱讀 1672

定義:所謂類的單例設計模式就是採取一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項

優點(為什麼要用):單例模式只生成乙個例項,減少系統效能開銷,當乙個物件的產生需要比較多的資源時(如讀取配置、產生其他依賴物件),則可以通過在應用啟動時直接產生乙個單例物件,然後永久駐留記憶體的方式來解決。

實現方式1(餓漢式):

將類的構造器私有化(在構造器前面聲名private)。

類內部建立乙個例項(由於封裝性,習慣性私有化)。

建立乙個getinstance方法獲取該例項,由於構造器私有化所以不能建立物件呼叫該方法,所有要在該方法前聲名static。

由於getinstance方法為靜態方法,內部呼叫返回例項物件也必須為靜態,故需要將建立例項物件聲名為static。

public

class

singletontest1

}class

bank

private

static bank instance =

newbank()

;public

static bank getinstance()

}

實現方式2(懶漢式):

懶漢式與餓漢式不同之處在於沒有在第二步直接建立物件例項,**而是聲名為null;**在getinstance方法中建立物件賦給instance靜態變數(如果引用物件不為null的情況,即沒有建立過物件的情況下,否則直接return instance)。

class

order

private

static order instance = null;

public

static order getinstance()

return instance;

}}

區分餓漢式和懶漢式

餓漢式:

好處:天然執行緒安全

壞處:物件載入時間過長(意思是和懶漢式好處反過來)

懶漢式:

好處:延遲物件的建立

壞處:目前寫法執行緒不安全

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

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

設計模式 單例設計模式

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

設計模式 單例設計模式

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