Singleton 單利模式的4個分身

2022-02-05 13:18:20 字數 1574 閱讀 4098

singleton 單利模式的4個分身

「單利模式」的用途?在專案著實沒什麼用,實在不需要手寫乙個單利。需要使用工具類的地方,靜態類就很好了,且有很多任務具類已經是現有的輪子。比如collectionutils, timeutils, datetimeutils, localdatetimeutils....無限多。hutool這個工具類中也包含了很多日常很有有的工具類,日漸成長,聲勢越來越旺。 spring容器倒是管理著很多的單利,但對於日常開發來講確實無甚感知。

廣為流傳的singleton有4個分身,分別是懶漢模式(lazy)、餓漢模式(hungry)、加重量鎖(synchronized)、雙重檢查鎖(dcl)。其中懶漢模式會有一丟丟問題,其他模式問題不大,區別於效能上的一丟丟差別。還是冷眼看看他們都長什麼樣吧。(但將冷眼觀螃蟹,看它橫行到幾時?嗯,就是這個冷眼)

1.lazy 懶漢模式

乙個看上去都不用解釋的寫法。沒有就建立,有就用。先看**!!!

public class lazy 

return instance;

}// 私有構造

}

一丟丟的問題就是出在了併發的時候,移步下圖:

按照此圖所標順序執行,則會new出兩個物件。兩個物件就兩個物件吧,也不耽誤使用是吧。哦,不不不。如果在建立物件之前執行過業務邏輯,那可就不一定了對吧?舉個

單利 Singleton 模板類的使用

1 singleton.h檔案和其使用方法 ifndef singleton h define singleton h template class singleton singleton void static t instance template inline t singleton inst...

設計模式 單利模式

單例模式的核心是保證乙個類只有乙個例項,並且提供乙個訪問例項的全域性訪問點。1 spring中bean物件的模式實現方式 2 servlet中每個servlet的例項 3 springmvc框架中,控制器物件是單例模式 4 專案中,讀取配置檔案的類,一般也只有乙個物件。沒有必要每次使用配置檔案資料,...

設計模式 單利

單利設計模式 解決乙個類在記憶體只存在乙個物件 步驟 1 建構函式私有化 2 類中建立本類物件 3 提供乙個方法可以獲取到該物件 1 餓漢式 class single private static single s new single public static single getinstanc...