Java單例模式例項

2021-09-01 09:45:37 字數 1222 閱讀 6848

單例模式是建立模式中普遍採用的一種。使用單例模式可以確保某個類只會有乙個例項被建立。單例模式是通過下面的思想來保證的:不讓類以外的任何事物建立物件的例項。通常來講,單例可以縮減記憶體 的需求。實現方式也有很多種。單例模式分三種:懶漢式單例、餓漢式單例、登記式單例三種。

單例模式主要有以下特點:

1、單例類只能有乙個例項。

2、單例類必須為自己建立自己的唯一例項。

3、單例類必須給所有其他物件提供這一例項。

一. 懶漢式

在類被載入的時候,單例模式的唯一乙個例項已經被載入.

class singleton  //建構函式必須私有化  

static singleton getinstance()

} }

二.餓漢式

在類載入的時候不建立單例例項。只有在第一次請求例項的時候的時候建立,並且只在第一次建立後,以後不再建立該類的例項。

class singleton   

static singleton getinstance()

}

三.登記式

這個單例實際上維護的是一組單例類的例項,將這些例項存放在乙個map(登記薄)中,對於沒有登記的,則先登記,而後返回,對於已經登記過的例項,則從工廠直接返回。

class regsingleton   

protected regsingleton() {}//受保護的預設構造方法

/**

* 靜態工廠方法,返回指定登記物件的唯一例項;

* 對於已登記的直接取出返回,對於還未登記的,先登記,然後取出返回

* @param name

* @return regsingleton

*/

public static regsingleton getinstance(string name)

if (registry.get(name) == null) catch (instantiationexception e1) catch (illegalacces***ception e2) catch (classnotfoundexception e3)

} return (regsingleton) registry.get(name);

} }

設計模式 單例模式java例項

public class model public static model getinstance 執行緒安全,但是一開始就建立了物件,如果物件一直沒使用,就造成資源浪費,也正因為這個缺點,所有有了懶漢式,用懶載入的方式降低資源的浪費。public class model public stati...

單例模式 例項

public class readsourceutil 在類的內部定義乙個自身型別的成員 private static private static readsourceutil me instance null 將構造方法私有化 private readsourceutil public stat...

java單例模式

第一種方法 public class singleton private static singleton singleton new singleton public static singleton getinstance 第二種方法 public class singleton private...