23種設計模式 單例模式

2021-09-28 18:34:08 字數 766 閱讀 6943

單例模式需要保證,構造方法一定是私有化的,並且類的全域性變數必須是靜態的,私有的;這樣才能有唯一的例項化途徑

錯誤**一:

public class singleton 

public static singleton getinstance()

}

上述方法,並沒有把類變數singleton設定為靜態的,這樣,如果想在getinstance方法中使用,則必須重新定義變數,並對其進行例項化,這樣,類中的private singleton singleton;就無用了,同時,也就不能保證只有乙個singleton物件了。

錯誤**二:

public class singleton 

public static singleton getinstance()

}

碰到判斷題,看見這種寫法,執行用==測試了之後發現是true,頓時陷入了迷茫,後來經朋友提醒才發現,此時呼叫getinstance賦值的物件其實是null,也就是null == null

class hungurysingleton 

public hungurysingleton getinstance()

}

餓漢式和懶漢式的區別在於懶漢式是使用時才進行載入,餓漢式是在類載入時已經載入好了的。

23種設計模式 單例模式

某些情況,如 執行緒池,乙個專案中匯流排程數量以及生命週期,可能需要統一控制 如果執行緒池自身可建立多個例項,那麼就無法統一控制,此時,只要能控制線程池物件的數量為乙個,那麼就可以實現統一控制的目標 注意 現實中真正使用純的單例模式並不多 如 spring bean 通過配置來決定是否使用單例 執行...

單例模式(23種設計模式)

單例模式 餓漢模式 class singletondemo public static singletondemo gets 懶漢模式 class singletondemo1 public static singletondemo1 gets return instance 單例模式,懶漢式,執行...

23種設計模式 單例模式

單例模式 保證乙個類只有乙個例項,並且提供乙個該例項的全域性訪問點 單例模式的要素 public class singleton1 2 類初始化的時候,立即載入該物件 private static singleton1 singleton1 newsingleton1 3 提供獲取該物件的公共方法 ...