JAVA基礎 設計模式之單例模式

2021-08-30 13:43:12 字數 635 閱讀 3977

1.單例模式:乙個類只能構建乙個物件的設計模式 。

2.怎麼去是實現?

①不允許其他程式用new建立該物件。

實現方式:將建構函式私有化。建立物件要呼叫建構函式,將建構函式的訪問許可權定義為private,建立物件將無法完成。

②在該類中建立乙個本類例項。

實現方式:在該類中new乙個本類的物件。

③對外提供乙個方法讓其他程式可以獲取該物件。

實現方式:定義乙個公有的方法,將物件進行返回。

3.單例模式的表現形式有兩種。

①餓漢式

class single

public static single setgetsingle()

因為其他程式不能建立物件,那麼要訪問該類的方法,通過物件訪問這一方式就是不可行的,我們可以用類名 . 方法名和類名 . 資料名來訪問,但是這一前提是必須為靜態的,所以方法和資料都要加static。

②懶漢式

class single2

public static single2 setgetsingle()

return s;

}}

因為這一種表現方式為用到時才會建立物件,稱為延遲載入,故稱做懶漢式。

Java基礎 設計模式 單例模式

單例模式,顧名思義,即只能建立乙個物件,是一種十分常見的設計模式。下面介紹一下兩種比較簡單的單例模式 1 餓漢式 不可以延時載入,類載入的時候就建立物件。如果沒有用到這個物件的話,就會導致資源浪費。2 懶漢式 可以延時載入,即用到物件的時候再new物件。但是必須考慮同步問題,如果不考慮,當多個執行緒...

java設計模式之單例模式

單位面試題目中有一道關於單例模式的題目.大多數參加筆試的同事都會寫出getinstance這個函式,但是當我問起什麼情況下需要使用單例 單例具體有什麼好處的時候 static函式也可以構建唯一例項,為什麼還需要單例.從使用單例的經驗來看,如下場景下,個人感覺應該使用單例 1.如果需要構建乙個工具類,...

java設計模式 之 單例模式

單例模式 有些類在程式執行過程中只需要儲存乙個例項,比如檔案管理類,音訊管理類,那麼我們如何實現乙個單例類呢?有以下幾點 1 定義乙個靜態變數 2 建構函式私有化 3 提供乙個public 靜態方法,獲取這個例項 4 一定要做執行緒同步 public static class singleton p...