Java設計模式之單例模式

2021-07-15 11:49:25 字數 901 閱讀 5728

推薦資源站:

單例模式常用兩種寫法:懶漢式單例、餓漢式單例

單例模式特點:

只能有乙個例項

定義乙個私有的、靜態的本身的物件

建立乙個共有的獲取這個物件的方法

總之,選擇單例模式是為了避免不一致的狀態

一、懶漢式單例

在第一次呼叫的時候例項化自己

public class lazy 

//2、建立乙個私有的靜態物件

private static lazy instance=null;

//3、共有的獲取這個物件的方法 , static 

public static lazy getinstance()

return instance;}}

lazy通過將構造方法限定為private避免了類在外部被例項化,在同乙個虛擬機器範圍內,lazy的唯一例項只能通過getinstance()方法訪問。但執行緒不安全

二、餓漢式單例

public class lazy 

//2、建立乙個私有的靜態物件

private static lazy instance=new lazy();

//3、共有的獲取這個物件的方法 , static 

public static lazy getinstance()

}

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

三、餓漢式和懶漢式區別

餓漢就是類一旦載入,就把單例初始化完成,保證getinstance的時候,單例是已經存在的了,

而懶漢比較懶,只有當呼叫getinstance的時候,才會去初始化這個單例。

java設計模式之單例模式

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

java設計模式 之 單例模式

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

Java設計模式之單例模式

說到單例模式 大家一定非常熟悉 這是最常見也是設計模式中相對簡單 好理解的設計模式 今天就跟大家掰一掰單例模式 單例模式確保某個類只有乙個例項 應用場景 執行緒池 快取 等物件常常被設計成單例 然而單例分兩種 1 惡漢式 2 懶漢式 我們先來看下 惡漢式 public class singleton...