乙個比較完美的單例模式

2021-09-21 13:08:08 字數 758 閱讀 7273

單例模式基本上是每乙個程式設計師都能隨手寫的設計模式,牢記兩私一公的原則:即私有建構函式,私有靜態例項屬性,公共的獲取例項的靜態方法。

遵循這個原則寫乙個,

public class singleton 

public static singleton getinstance()

return instance;

}}

以上這個是傳統單執行緒環境下的寫法,缺點是執行緒不安全,那麼就改造一下,通過synchronized保證執行緒安全。

public class singleton 

public static singleton getinstance()

synchronized (singleton.class)

}return instance;

}}

看起來好像好多了,保證了執行緒安全,例項初始過了就直接返回例項不進入同步**塊,但是,還是有更好的寫法:

public class singleton 

public static singleton getinstance()

private enum enumsingleton

public singleton getsingleton()

}}

列舉本身是無法通過反射、轉殖、反序列化等把物件初始出來的,所以據說是完美寫法,當然如果有更好的,請大佬私聊一下,本菜雞感激不盡!!!

完美的單例模式

一 立即載入模式 餓漢模式 立即載入模式 餓漢模式 author lzn public class singleone 該方法保證在多執行緒中獲取的是同乙個物件 該方法缺點是不能有其他例項變數,因為getinstance 不是同步方法,會引起執行緒安全問題 return public static ...

ios下比較完美的單例模式

網上關於ios單例模式實現的帖子已經很多了,有很多版本,裡面有對的也有不對的。我在使用過程中很難找到乙個比較完美的方法,索性自己寫乙個吧,經過專案驗證是比較合理的乙個版本。static prautologinview s sharedinstance nil prautologinview shar...

乙個比較完美的spacer div技巧

在製作網頁的過程中,自適應問題是經常遇到,而又最讓人頭疼的,看了好多種解決的方法,但是都不是萬能的。今天遇到這個問題,實在讓我撓頭,借鑑了shark的方法,又給了我乙個新思路。當時沒仔細看lbs的樣式表,今天才發現,clear用的就是這個方法。接下來,我會做個關於 自適應高度 問題的彙總,以便今後遇...