實現單例模式(Java)

2021-07-28 15:55:21 字數 782 閱讀 6978

題目:設計乙個類,我們只能生成該類的乙個例項

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

餓漢式單例類

public

class singleton

public

static singleton getinstance()}

餓漢式點評:單例模式要求只能生成乙個例項,所以其構造方法的屬性為private,其餘方法加上static關鍵字,保證該方法只能被呼叫1次。

懶漢式單例模式

public

class singleton

public synchronized static singleton getinstance()

return instance;

}}

懶漢式點評:與餓漢式單例模式相比,懶漢式在需要時才建立,所以賦值為null時,要去掉final關鍵字。在建立時,要保證其在多執行緒環境下依然只能夠建立1個例項,所以用synchronized關鍵字修飾。其餘方面與餓漢式類似,都需要用private關鍵字修飾構造方法和初始化賦值,方法都需要用static關鍵字修飾。

ps:本文參考《劍指offer:名企面試官精講典型程式設計題》(何海濤著,北京:電子工業出版社,2012)和csdn資源( /9055079)以及其他網際網路資源。

java實現單例模式

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

單例模式 Java實現

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

java單例模式的實現

單例在很多地方都用的到,例如購物車之類的,我現在就把單例實現類寫一下供大家交流 我把類的初始話順序說一下,大家就能很快理解了 單個類 1.靜態變數2.靜態初始化塊3.變數4.初始化塊5.構造器 繼承類 1.父類 靜態變數2.父類 靜態初始化塊 3.子類 靜態變數4.子類 靜態初始化塊 5.父類 變數...