設計模式之單例模式 Singleton

2021-07-24 08:22:52 字數 1020 閱讀 1456

單例模式是一種常用的設計模式,可以保證物件在jvm中只有乙個例項存在,這樣做的好處可以不用重複的建立類物件,節省一筆很大的開銷,而且可以減輕gc壓力。常見的建立模式有懶漢模式和餓漢模式。但是如果考慮到不同場景,設計有很大差別。

首先簡單乙個簡單的圖示例:

懶漢模式:(類載入時,不立即建立例項,所以載入類速度快,但是獲取例項較慢)

public class singieton 

/*靜態工程方法,建立例項*/

public static singieton getinstance()

return instance;}}

餓漢模式:(類載入時,建立例項,載入速度慢,但是獲取例項快)

public class singieton 

}

如果放在多執行緒下,上面的寫法顯然是不安全的,要考慮到同步問題:

public class singieton 

/*靜態工程方法,建立例項*/

public static synchronized singieton getinstance()

return instance;}}

上面的寫法解決同步問題,但是有乙個問題,每次呼叫getinstance()都要給物件加鎖,這樣明顯效率不是最低,下面:

/**

* created by diy_os on 2016/10/2.

*/public class singieton

public static singieton getinstane()}}

return instance;}}

上面的寫法在一定程度上提公升了效能,但不是最優的,單例模式需要結合實際需求找到適合的解決方法,有一定的難度。

Java設計模式 單例模式(single)

目錄目的 應用例項 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。菜鳥教程 乙個國家有乙個首都 windows 是多程序多執行緒的,在操作乙個檔案的時候,就不可避免地出現多個程序或執行緒同時操作乙個檔案的現象,所以所有檔案的處理必須通過唯一的例項來進行。第一種 package com.ga...

設計模式之單例模式

前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會23種設計模式並且會熟練運用的人,真的就是大師級的牛人了,設計模式是乙個專案主管或者架構師一定要會的東西...

設計模式之單例模式

package com.xie.singleton public class singleton 提供乙個共有的靜態的入口方法 public static singleton getinstance 懶漢式 延遲載入 提供乙個私有的靜態的成員變數,但不做初始化 private static sing...