Java中的單例類(該類始終只能建立乙個例項)

2021-09-24 22:43:42 字數 628 閱讀 7095

在某些情況下,要求不允許自由建立該類的物件,而只允許該類建立乙個物件,為避免其他類自由建立給該類的例項,應該把該類的構造器用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則會導致對物件的訪...