常見應用場景:window中任務管理器就是典型的單例 window中**站
專案中,讀取配置檔案的類,一般也只有乙個物件,沒有必要每次使用配置檔案資料,每次new乙個物件去讀取
**的計數器(保證同步) 應用程式的日誌應用,資料庫連線池一般也是採用單例,因為資料庫連線也是一種資料庫資源
public class singleton}public static singleton createinstance()
private object readresolve() throws objectstreamexception
}
public class singleton問題:由於編譯器優化原因和jvm底層內部模型原因,偶爾會出現問題,不建議使用public static syncronized singleton createinstance()
return s;
}}
public classs singleton優點:彌補反序列化和反射漏洞,jvm直接支援private static class singletoninstance
public static singleton createsingleton()
}
public enum singleton效率測試:多執行緒環境下 惡漢:22ms 懶漢:636ms 靜態內部類:28ms 列舉:32ms 雙重檢測:65ms
23種設計模式 單例模式
某些情況,如 執行緒池,乙個專案中匯流排程數量以及生命週期,可能需要統一控制 如果執行緒池自身可建立多個例項,那麼就無法統一控制,此時,只要能控制線程池物件的數量為乙個,那麼就可以實現統一控制的目標 注意 現實中真正使用純的單例模式並不多 如 spring bean 通過配置來決定是否使用單例 執行...
單例模式(23種設計模式)
單例模式 餓漢模式 class singletondemo public static singletondemo gets 懶漢模式 class singletondemo1 public static singletondemo1 gets return instance 單例模式,懶漢式,執行...
23種設計模式 單例模式
單例模式需要保證,構造方法一定是私有化的,並且類的全域性變數必須是靜態的,私有的 這樣才能有唯一的例項化途徑 錯誤 一 public class singleton public static singleton getinstance 上述方法,並沒有把類變數singleton設定為靜態的,這樣,...