Singleton 單例模式(懶漢方式和餓漢方式)

2022-03-04 15:08:07 字數 1011 閱讀 2704

單例模式的概念:

單例模式的意思就是只有乙個例項。單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。

關鍵點:

1)乙個類只有乙個例項       這是最基本的

2)它必須自行建立這個例項

3)它必須自行向整個系統提供這個例項

兩種實現方式:

1  懶漢模式(類載入時不初始化)

package singleton;

public class lazysingleton

public static synchronized lazysingleton getinstance() //靜態,同步,公開訪問點

return intance;

}}

關鍵點:(**注釋上已給出)

1)建構函式定義為私有----不能在別的類中來獲取該類的物件,只能在類自身中得到自己的物件

2)成員變數為static的,沒有初始化----類載入快,但訪問類的唯一例項慢,static保證在自身類中獲取自身物件

3)公開訪問點getinstance: public和synchronized的-----public保證對外公開,同步保證多執行緒時的正確性(因為類變數不是在載入時初始化的)

優缺點見**注釋。

2  餓漢式單例模式(在類載入時就完成了初始化,所以類載入較慢,但獲取物件的速度快)

package singleton;

public class eagersingleton

public static eagersingleton getinstance() //靜態,不用同步(類載入時已初始化,不會有多執行緒的問題)

}

關鍵點:(**注釋已寫)

1)私有建構函式

2)靜態私有成員--在類載入時已初始化

3)公開訪問點getinstance-----不需要同步,因為在類載入時已經初始化完畢,也不需要判斷null,直接返回

優缺點見**注釋。

單例模式 Singleton 懶漢 餓漢模式

其他文章 include stdafx.h include if 0 單例模式指乙個類只允許有乙個例項,並提供乙個訪問它的全域性訪問點,使得系統中只有唯一的 乙個物件例項,型別分為懶漢模式和餓漢模式 應用 常用於管理資源,如日誌 執行緒池 實現方法 建構函式宣告為private或protect防止被...

單例模式Singleton(餓漢式和懶漢式)

單例模式在我們開發中經常會用到的,不知道你所喜歡用餓漢模式還是喜歡懶漢模式呢?為什麼會出現有兩種方式來實現單例模式?我看這其中必蹊蹺,你怎麼看?我們來看一下懶漢模式和餓漢模式的實現 餓漢模式 author zhou.ni versioncode 1 每次修改提交前 1 public class hu...

單例 Singleton 模式的餓漢懶漢式實現

設計模式是在大量的實踐中總結和理論化之後優選的 結構 程式設計風格 以及解決問題的思考方式。我們聽說比較多的就是單例模式,工廠模式,模式。單例模式,或者叫單例設計模式,就是採用一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項的方法。所以這就要求我們把類...