單例設計模式

2022-07-26 15:24:14 字數 1176 閱讀 2016

今天學習了一下單例設計模式,什麼是單例設計模式呢?就和古代時候只能有乙個皇帝一樣,有些時候我們會要求某個類只能有乙個物件例項,例如工具類。那麼如何實現呢?

正常的乙個類定義如下:

class

singleton

在構造物件例項的時候我們使用new singleton(),那麼這樣就可以構建多個物件例項,為了不讓使用者可以任意的構建物件,這裡我們把類的預設建構函式重寫一下並宣告為private,問題又來了,這樣做的話會導致乙個物件也new不了。為了解決這個問題,可以在類的內部new乙個類物件,這就產生了單例設計模式的兩種方法,「餓漢式」和「懶漢式」。

「餓漢式」singleton類定義如下:

class

singleton1

public

static

singleton

instance

=new

singleton1

();

}

"懶漢式":

class

singleton2

private

static

singleton2

instance

;

public

static

singleton2

getinstance

()

return instance;

}

}

餓漢式和懶漢式的區別在於什麼時候例項化instance物件,餓漢式在類載入的時候就例項化了instance物件,而懶漢式只有在第一次呼叫getinstance函式是才例項化instance物件,所以餓漢式在類載入的時候比較慢而在外面使用instance的時候比較快,相反,懶漢式則在類載入的時候比較快而在第一次使用getinstance的時候比較慢。

來自為知筆記(wiz)

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

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

設計模式 單例設計模式

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

設計模式 單例設計模式

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