Java單例模式的實現

2021-07-03 01:24:30 字數 1227 閱讀 5998

所謂類的單例設計模式,就是採取一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項的方法。如果我們要讓類在乙個虛擬機器中只能產生乙個物件,我們首先必須將類的構造方法的訪問許可權設定為private,這樣,就不能用new操作符在類的外部產生類的物件了,但在類內部仍可以產生該類的物件。因為在類的外部開始還無法得到類的物件,只能呼叫該類的某個靜態方法以返回類內部建立的物件,靜態方法只能訪問類中的靜態成員變數,所以,指向類內部產生的該類物件的變數也必須定義成靜態的。

單例模式的「餓漢式」實現:

public class testsingletonhungry

}//單例模式的「餓漢式」實現

class singletonhungry

//在類的內部建立乙個類的例項

private static singletonhungry singleton = new singletonhungry();

//此公共方法只能通過類來呼叫

public static singletonhungry getsingleton()

}

單例模式的「懶漢式」實現:

public class testsingletonlazy

}class singletonlazy

//先宣告類的引用

private static singletonlazy singleton = null;

public static singletonlazy getsingleton()

//若有了類的例項,直接返回給呼叫者

return singleton;

}}

解決「懶漢式」存在的執行緒安全問題,將**修改如下:

public class testsingletonlazy

}//單例模式的「懶漢式」實現

class singletonlazy

//先宣告類的引用

private static singletonlazy singleton = null;

public static singletonlazy getsingleton()

}} //若有了類的例項,直接返回給呼叫者

return singleton;

}}

執行程式後發現返回結果都為「true」。

java實現單例模式

1.餓漢式 public class singletonclass private singletonclass 這種方式基於 classloder 機制避免了多執行緒的同步問題,不過,instance 在類裝載時就例項化,雖然導致類裝載的原因有很多種,在單例模式中大多數都是呼叫 getinstan...

實現單例模式(Java)

題目 設計乙個類,我們只能生成該類的乙個例項 說明 只能生成乙個例項的類是實現了singleton 單例模式 的型別。由於設計模式在物件導向程式設計中有著舉足輕重的作用,因此很多公司都會考察。在眾多模式中,singleton模式是唯一乙個能夠用十幾行 完整實現的設計模式,因此此題目很常見 餓漢式單例...

單例模式 Java實現

顧名思義,餓漢法就是在第一次引用該類的時候就建立物件例項,而不管實際是否需要建立。如下 publicclasssingleton publicstaticgetsignleton 這樣做的好處是編寫簡單,但是無法做到延遲建立物件。但是我們很多時候都希望物件可以盡可能地延遲載入,從而減小負載,所以就需...