單例模式的概念:
單例模式的意思就是只有乙個例項。單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。
關鍵點:
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 模式的餓漢懶漢式實現
設計模式是在大量的實踐中總結和理論化之後優選的 結構 程式設計風格 以及解決問題的思考方式。我們聽說比較多的就是單例模式,工廠模式,模式。單例模式,或者叫單例設計模式,就是採用一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項的方法。所以這就要求我們把類...