在某些情況下,要求不允許自由建立該類的物件,而只允許該類建立乙個物件,為避免其他類自由建立給該類的例項,應該把該類的構造器用private修飾,從而把該類的構造器隱藏起來。
另外提供public方法作為該類的訪問點,用於建立該類的物件,且該方法只能是static修飾(因為呼叫該方法之前還不存在物件,因此呼叫該方法不可能是物件,只能是類)
此外還需要快取已經建立的物件,否則該類無法知道是否曾經建立過物件,也就無法保證只能建立乙個物件。,因此用乙個成員變數來儲存曾經建立的物件,並用static修飾,被上面的靜態方法訪問。
建立單例類:
/**
* 說明:單例類,始終只能建立乙個例項
* @author liuyp_1024
* */
class singleton
//因為建立該類物件時,還不存在物件,因此呼叫該方法的不可能是物件,只能是類,用static修飾
//並且應該保證只能產生乙個例項
public static singleton getinstance()
return instance; }}
public class singletontest
}
結果輸出是:ture Java中單例類和不可變類的理解
1.如果乙個類始終只能建立乙個例項,則這個類被稱為單例類。思路 public static void main string args 不建立例項,而是引用類中方法內建立的例項。建立乙個新物件,使用new,就要使用建構函式。既然是單例,就不能使用建構函式來建立 於是將類中建構函式許可權設定為priv...
Java中的單例模式
一 概述 單例模式的寫法有好幾種,這裡主要有三種 懶漢式單例 餓漢式單例 登記式單例。單例模式有以下特點 1 單例類只能有乙個例項。2 單例類必須自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。在計算機系統中,...
Java中的單例模式
保證只有乙個物件 類載入的時候物件就已經存在,餓漢式是執行緒安全的,在類建立的同時就已經建立好乙個靜態的物件供系統使用,以後不再改變,上述例子就是乙個惡漢式 類載入的時候物件還不存在,就是所謂的延遲載入方式,需要時再進行建立,懶漢式如果在建立例項物件時不加上synchronized則會導致對物件的訪...