單例模式的應用場景

2021-08-02 04:55:46 字數 637 閱讀 9913

單例模式是乙個非常重要的設計模式,下面是單例模式的經常使用場景:

1、專案中的配置檔案,如資料庫的連線資訊等,通常會用單例物件讀取並儲存

2、hibernate的sessionfactory應作為單例使用

3、servlet是典型的單例物件,這個物件是由tomcat伺服器建立並維護的

4、spring容器中的bean物件,預設都是單例模式

5、spring容器也應設定成單例

比較:餓漢式是執行緒安全的,在類建立的同時就已經建立好乙個靜態的物件供系統使用,以後不在改變

懶漢式如果在建立例項物件時不加上synchronized則會導致對物件的訪問不是執行緒安全的

推薦使用第一種 

從實現方式來講他們最大的區別就是懶漢式是延時載入,

他是在需要的時候才建立物件,而餓漢式在虛擬機器啟動的時候就會建立,

餓漢式無需關注多執行緒問題、寫法簡單明瞭、能用則用。但是它是載入類時建立例項(上面有個朋友寫錯了)、所以如果是乙個工廠模式、快取了很多例項、那麼就得考慮效率問題,因為這個類一載入則把所有例項不管用不用一塊建立。

懶漢式的優點是延時載入、缺點是應該用同步(想改進的話現在還是不可能,比如double-check)、其實也可以不用同步、看你的需求了,多建立一兩個無引用的廢物件其實也沒什麼大不了。

單例模式應用場景

了解單例模式 單例模式實際應用場景。1.windows的task manager 任務管理器 就是很典型的單例模式 這個很熟悉吧 想想看,是不是呢,你能開啟兩個windows task manager嗎?2.windows的recycle bin 站 也是典型的單例應用。在整個系統執行過程中,站一直...

單例模式的應用場景

使用單例模式最核心的一點是體現了物件導向封裝特性中的 單一職責 和 物件自治 原則。很多時候我們要保證類的例項只有乙個。我們可能在自己的 中判斷需要的類的例項有無,無就new乙個。這樣看似不錯。問題是,你用到這個類的地方有n個,這樣你就需要n個判斷。為什麼不把這個職責交給類本身呢?然後讓類提供乙個介...

單例模式的應用場景

php單例模式的常見應用場景 單例模式 singleton 也叫單態模式,是設計模式中最為簡單的一種模式,甚至有些模式大師都不稱其為模式,稱其為一種實現技巧,因為設計模式講究物件之間的關係的抽象,而單例模式只有自己乙個物件,也因此有些設計大師並把把其稱為設計模式之一。這裡又不具體講如何實現單例模式和...