想要實現單例設計模式的核心就是構造方法的私有化
分為兩種:
餓漢單例模式和飽漢單例模式
餓漢單例模式(
推薦使用)
核心要點: 1.
構造器私有化 2.
提供乙個私有屬性的singleton物件
3.利用static{}
**塊來
new
建立物件
(推薦使用
static
**塊來建立
new 物件)
4.提供獲得單例物件的靜態方法
飽漢單例模式:
核心要點:
1.構造器私有化
2.提供乙個私有屬性的
singleton物件
3.不需要在static**塊中
new
出singleton
物件(在呼叫靜態工廠的時候再new出物件)
4.提供獲得單例物件的靜態方法
(判斷是否存在
singleton
物件,沒有就建立;如果存在就直接返回)
它們直接沒啥太大的區別,可以暫時將它們看作相同的,等深入多執行緒之後會有所不同
餓漢**:
public class singleton
// 構造器 私有化
private singleton()
public static singleton getsingleton()
// 一系列方法 }
飽漢**:
public class singleton2
// 定義乙個靜態方法來獲得
singleton 例項
public static singleton2 getsingleton() else
return singleton;
return singleton; }
//一些列方法 }
思路由來:
1.如果想使乙個類只能例項化出乙個物件,那麼只能把類的構造方法私有化
2.私有化方法之後,就沒法通過
new class
來建立了,但是要獲得乙個物件一定要有
new
關鍵字
3.那麼只能在類的裡面
new class
來建立乙個例項了,使用
static
來完成
new class
4.要想獲得這個例項的話,那麼久需要使其成為乙個該類的屬性
5.根據類的封裝性和安全性考慮,要
private
該屬性。
6.最後就要提供乙個靜態的
getsingleton
方法,返回該
singleton
物件。
單例設計模式(餓漢單例設計模式 懶漢單例設計模式)
1.什麼是單例 單例的意思是乙個類永遠只存在乙個物件,不能建立多個物件。2.為什麼要用單例 開發中有很多的物件我們只需要乙個,例如虛擬機器物件,任務管理器物件 物件越多越佔記憶體,有時候只需要乙個物件就可以實現業務,單例可以節省記憶體空間。3.如何實現單例 單例的實現方式有 餓漢單例設計模式 通過類...
設計模式 單例設計模式
歷史 最早是建築學領域的模式,然後gof四人由其引申到編碼方面,總結了23種設計模式 設計模式 解決某一類事情最行之有效的方法 2.1 體現 餓漢式,保證物件的唯一性 class singleton 私有化建構函式禁止該類建立物件 private static singleton st new si...
設計模式 單例設計模式
單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。即乙個類只有乙個物件例項 單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。單例設計模式 解決的問題 可以保...