設計模式之單例 一

2021-08-29 04:15:13 字數 1012 閱讀 4100

單例 

乙個類只有乙個例項

實現單例的三個步驟:

1.私有化構造器

2.在本類中建立唯一例項(靜態的變數)

3.提供乙個公有的靜態的get方法用於返回當前類的唯一例項

餓漢當類一載入的時候就建立物件

優點: 呼叫效率高, 執行緒安全的

缺點: 如果這個類建立了一直沒有使用, 則相當於浪費了資源

/**

* 餓漢單例

缺點:類初始化就new乙個物件,如果不用會占用資源

優點:執行緒安全,效率高()

*/public class hungrysingle;

public static hungrysingle getinstance()

}

懶漢當類載入的時候不會建立物件, 只有當這個物件被顯示獲取時,

才去建立物件

優點: 實現了懶載入

缺點: 呼叫效率較餓漢低, 執行緒不安全

/**

* lazy單例

優點:不需要再初始化時就new乙個物件,節約系統資源

缺點:每次使用都要new,如果引數很多,需要花費時間,效率低,而且執行緒不安全

*/public class lazysingle

private static lazysingle instance;

public static lazysingle getinstance()else

}}

靜態內部類

在類的內部定義乙個私有的內部類, 在內部類中去建立唯一例項

即實現了懶載入, 又保證了執行緒安全

推薦使用

public class outsingle;

private static class innersingle

public static final outsingle getinstance()

}

設計模式之單例設計模式 一)

目錄 1.懶漢式 2.餓漢式 例子 對於系統中的某些類來說,只有乙個例項很重要,例如,乙個系統中可以存在多個列印任務,但是只能有乙個正在工作的任務 乙個系統只能有乙個視窗管理器或檔案系統 乙個系統只能有乙個計時工具或id 序號 生成器。如在windows中就只能開啟乙個任務管理器。如果不使用機制對視...

設計模式一之單例模式

單例模式是最常用到的設計模式之一,熟悉設計模式的朋友對單例模式都不會陌生。一般介紹單例模式的書籍都會提到餓漢式和懶漢式這兩種實現方式。但是除了這兩種方式,本文還會介紹其他幾種實現單例的方式,讓我們來一起看看吧。單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。許多時候整個系...

設計模式一之單例模式

第一種單例模式 餓漢式 建構函式私有化 提供公共的靜態函式 建立物件 public class singleton public static singleton getinstance 第二種單例模式 懶漢式 跟第一種單例模式相比 懶漢式是在需要使用物件的時候才建立物件 建立的時候使用雙重檢查 兼...