單例模式示例與解析

2021-08-03 17:26:33 字數 1735 閱讀 6734

寫乙個單例模式出來(**):

餓漢模式

public class single 

//建立本類物件

private static single s = new single();

//對外提供獲取本來物件方法

public static single getinstance()

}

注意問題:

由於外界無法建立single物件,沒有物件,那就無法呼叫getinstance方法,這時需要將getinstance方法靜態化,這樣外界就可以通過類名直接呼叫該方法。

你可以把構造方法定義成private的,沒有問題,這樣任何其他類都不能使用new來構造這個類的物件。

懶漢模式

public class single 

// 在本類中建立本類物件

private static single instance = null;

// 對外提供靜態訪問方法,獲取本類例項物件

public static single getinstance()

return instance;

}}class singledemo

}

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~~

~~~單例模式:單例模式的意思就是只有乙個例項。單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。

單例模式有三種:懶漢式單例,餓漢式單例,登記式單例。

public class singleton  //此類不能被例項化

public static synchronized singleton getinstance()

return singleton;}}

優點:第一次呼叫才初始化,避免記憶體浪費。

缺點:必須加鎖synchronized 才能保證單例,(如果兩個執行緒同時呼叫getinstance方法,會chuxia)但加鎖會影響效率。

public class singleton  //此類不能被例項化

public static singleton getinstance()

}缺點:類載入時就初始化,浪費記憶體。

public class singleton //構造方法是私有的,從而避免外界利用構造方法直接建立任意多例項。

public static singleton getinstance()

private static class holder

}內部類只有在外部類被呼叫才載入,產生singleton例項;又不用加鎖。此模式有上述兩個模式的優點,遮蔽了它們的缺點,是最好的單例模式。

說明:之前一直不太清楚幾個模式之間的區別;也不曉得單例模式的注意點,就知道個概念吧。這次在同事的督促下寫完乙個單例,然後聽他講了三個單例以及之間的區別,有種豁然開朗的感覺。貌似最後乙個模式是我之前一直沒理解的。分享之,希望大家都能弄懂單例~

單例模式示例 以示例為例

單例模式示例 存檔日期 2019年5月13日 首次發布 2003年2月1日 從sax到rddl,社群標準在xml技術中起著非常重要的作用。xslt最重要的社群標準是exslt倡議,用於標準擴充套件功能和元素。在本文中,uche ogbuji使用實際示例來介紹和演示一些有用的exslt函式。此內容不再...

單例模式解析

1 餓漢模式 優點 在類初始化時已經例項化完成,呼叫時較快 執行緒安全 缺點 不管後期是否使用,都進行了一次初始化,有可能浪費資源 public class singleton 建構函式私有化 public static singleton getinstance 2 懶漢模式 不推薦 優點 只有在...

單例模式解析

什麼是單例模式?在整個jvm執行週期中只有乙個例項的物件。用法 執行緒安全 double check public void class singleton 3.實現雙重檢查鎖構造單例 public singleton getinstance return instance 為什麼要使用雙重檢查鎖?...