單例設計模式:保證類在記憶體中只有乙個物件。
如何保證類在記憶體中只有乙個物件?
(1)控制類的建立,不讓其他類來建立本類的物件。private
(2)在本類中定義乙個本類的物件。
(3)提供公共的訪問方式,例如:
public static myobject getinstance()
單例寫法兩種:
(1)餓漢模式。
(2)懶漢模式。
立即載入/「餓漢模式」
什麼是立即載入?立即載入就是使用類的時候已經將物件建立完畢,常見的實現辦法就是直接new例項化。而立即載入從中文的語境來看,有,「著急」、「急迫」的含義,所以稱為「餓漢模式」。
延遲載入/「懶漢模式」
什麼是延遲載入?延遲載入就是在呼叫get()方法時例項才被建立,常見的例項辦法就是在get()方法中進行new例項化。而延遲載入從中文的語境來看,是「緩慢」、「不急迫」的含義,所以也稱為「懶漢模式」。
延遲載入/「懶漢模式」的缺點
在多執行緒的環境中,就會出現取出多個例項的情況,與單例模式的初衷是相背離的。
使用靜態內建類實現單例模式
使用static**塊實現單例模式
靜態**塊中的**在使用類的時候就已經執行了,所以可以應用靜態**塊的這個特性來實現單例設計模式。
Java多執行緒 48 單例設計模式
前面學習了多執行緒的一些知識,這篇來學習並掌握什麼是單例設計模式,以及常見的單例模式寫法有哪些。先來理解什麼是單例模式,單例就是保證類在記憶體中只有乙個物件。我們知道,類是可以通過多種方式去獲取物件,例如常見的new物件。在記憶體中只有乙個物件,如果這句話不好理解。這裡,很多人都用過selenium...
多執行緒 多執行緒 單例設計模式
多執行緒之 單例設計模式 餓漢式 多執行緒安全 1 餓漢式 class single static single getinstance public void show class a implements runnable class test catch interruptedexceptio...
Java單例設計模式,多執行緒下同步
單例模式的特點 只建立一次 私有的屬性 公有的訪問方法 單例模式的分類 懶漢 lazysingleton 預設不自動例項化,等到用的時候根據當前情況例項化,並且返回當前物件 惡漢 eagersingleton 在類第一次載入的時候強制例項化 用處 一般用在配置檔案的讀取,有些東西只需要載入一次,以後...