1、單例類確保自己只有乙個例項(構造方法私有化)
2、單例類必須自己建立自己的例項。
3、單例類必須為其他物件提供唯一的例項。
package singleton;
//懶漢式 單例例項在第一次被使用時構建,延遲初始化。
public class singleton }}
return sing;
}public void getname()
}
優點: 避免了餓漢式的那種在沒有用到的情況下建立事例,資源利用率高,不執行getinstance()就不會被例項,可以執行該類的其他靜態方法。
缺點: 懶漢式在單個執行緒中沒有問題,但多個執行緒同事訪問的時候就可能同事建立多個例項,而且這多個例項不是同乙個物件,雖然後面建立的例項會覆蓋先建立的例項,但是還是會存在拿到不同物件的情況。解決這個問題的辦法就是加鎖synchonized,第一次載入時不夠快,多執行緒使用不必要的同步開銷大。
餓漢式 在自己內部定義自己的乙個例項,只供內部呼叫
public class singleton1
//這裡提供了乙個供外部訪問本class的靜態方法,可以直接訪問
public static singleton1 getinstance()
//測試用方法
public void put()
}優點 1.執行緒安全
2.在類載入的同時已經建立好乙個靜態物件,呼叫時反應速度快
缺點 資源效率不高,可能getinstance()永遠不會執行到,但執行該類的其他靜態方法或者載入了該類(class.forname),那麼這個例項仍然初始化
public class test
python單列模式 Python單列模式
實現單例模式的幾種方式 1.使用模組 2.使用裝飾器 3.使用類 4.基於 new 方法實現 推薦使用,方便 5.基於metaclass方式實現 單例模式 singleton pattern 是一種常用的軟體設計模式,該模式的主要目的是確保某乙個類只有乙個例項存在。當你希望在整個系統中,某個類只能出...
設計模式 單列模式
何為設計模式呢?簡單的說就是能重複利用的解決方案,當碰到a專案也出現這種情況,b專案也出現這種情況 那麼是否能把這懂實現功能抽象出來,形成一種解決方案.單列模式 顧名思義就是乙個例項 即乙個物件只能初始化一次 作用 減少開闢記憶體空間,節約記憶體開銷 class program 因為a物件在記憶體堆...
設計模式 單列模式
原文 單例模式是最常用到的設計模式之一,熟悉設計模式的朋友對單例模式都不會陌生。一般介紹單例模式的書籍都會提到餓漢式和懶漢式這兩種實現方式。但是除了這兩種方式,本文還會介紹其他幾種實現單例的方式,讓我們來一起看看吧。單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。許多時候...