首先介紹下單例模式存在的意義,不需要輸入引數就可以獲得乙個物件,而且可以保證某乙個類的例項在整個系統中保證唯一性。比如,我們在開發中使用者輸入的一些資訊需要記錄進資料庫,如果使用使用者比較多的時候,每次使用都要建立連線,這樣子把系統大部分的精力都用在了建立連線上而不是資料的操作上。這個時候如果可以保證系統只有乙個鏈結,大家都訪問這乙個連線會節省很多精力以及cpu利用率。這就是單例模式存在的價值。
那餓漢式和懶漢式是單例模式中的特例。
餓漢式是在單例模式被載入的時候或程式啟動的時候,物件就被建立了。
懶漢式是在程式第一次訪問單例物件的時候才建立物件。
//餓漢式
public class sample
//但是注意因為外部不能new物件,則不能通過物件名.方法獲取student類的內部例項
// 所有要把這個公共方法靜態化statis
//提供乙個公共的訪問方法,內部new的物件是為了讓外部使用,所以要提供乙個方法獲取到內部物件
public static sample getsample()
}
//懶漢式
// a:懶漢式(延遲載入)
// * b:執行緒安全問題
// * a:是否多執行緒環境 是
// * b:是否有共享資料 是
// * c:是否有多條語句操作共享資料 是
public class single
//私有化和靜態化自己內部的物件,因為外部不能new物件,只能內部自己new
//下面要提供乙個靜態的方法給外界直接呼叫,而靜態只能訪問靜態
//為了不讓物件被修改所以要私有化
private static single s = null;
//但是注意因為外部不能new物件,則不能通過物件名.方法獲取student類的內部例項
// 所有要把這個公共方法靜態化statis
//提供乙個公共的訪問方法,內部new的物件是為了讓外部使用,所以要提供乙個方法獲取到內部物件
public synchronized static single getsingle()
return s;
}}
單例模式之餓漢式與懶漢式
單利模式 乙個應用中有且只有該類的乙個的物件 餓漢式 public class singleton 2 提供物件引用 public static singleton singleton new singleton 3 提供方法供外部獲取例項物件 public static singleton get...
單例模式 懶漢式與餓漢式
什麼是單例設計模式 保證這個類的物件永遠有且只有乙個。單例設計模式有兩種 見如下兩種宣告方式 1.懶漢式 設計單例模式 懶漢式 先建立乙個私有的靜態物件 private static user user 建立乙個私有的構造方法 private user 建立乙個公有的靜態的返回物件的方法,需要判斷 ...
單例模式 懶漢式與餓漢式
1 簡述 單例模式 singleton pattern 是一種常用的設計模式,它屬於建立者模式。單例模式只允許有乙個例項,通過建構函式私有化的方式隱藏物件建立入口,取而代之的是提供公共介面用於獲取類的單例。其應用場景廣泛,例如建立管理類 只需要乙個管理實體 或者應用於物件需要限定唯一性的場景等。注意...