設計模式 單列模式 其他的幾種方式

2021-10-06 20:12:03 字數 1983 閱讀 7681

/**

* 單列模式

* 餓漢模式-靜態**塊的實現

* * 優點:沒有加鎖,執行效率會提高。它基於classloder機制避免了多執行緒的同步問題

* 缺點:類載入時就初始化,沒有達到lazy loading的效果,浪費記憶體。

*/public

class

singletonstaticdemo

private

singletonstaticdemo()

public

static singletonstaticdemo getinstance()

}

/**

* 餓漢式的靜態變數的方式

* 可能造成記憶體浪費

* */

public

class

singletondemo02

}class

singleton2

//2、本類內部建立物件例項

private

static singleton2 instance;

//3、在靜態**塊中,建立單列物件

static

//4、提供乙個公有的靜態方法,返回例項物件

public

static singleton2 getinstance()

}

/**

* 單例模式-懶漢式

* 執行緒不安全的

* **/public

class

singletondemo03

}class

singleton03

public

static singleton03 getsingleton03()

return singleton03;

}}

/**

* 單例模式-雙重檢查

* 保證了執行緒安全

* 延遲載入,效率較高

* */

public

class

singletondemo05

}class

singleton05

public

static singleton05 getsingleton05()

}}return singleton05;

}}

/**

* 單例模式-靜態內部類

* 1)採用了類裝載的機制保證初始化例項時只有乙個執行緒

* 2)靜態內部誒方式在singleton類被裝載時並不會立即例項化,而是在需要例項化時,呼叫getinstance方法

* 才會裝載singletonstance類,從而完成singleton的例項化

* 3)類的靜態屬性只會在第一次載入類的時候初始化,所以在這裡,jvm幫助我們保證了執行緒的安全性,在類進行初始化時,別的執行緒無法進入的

* 4)避免了執行緒不安全,利用靜態內部類特點實現延遲載入,效率高

* */

public

class

singletiondemo06

}class

singleton06

//靜態內部類,該類中有乙個靜態屬性singleton

private

static

class

singletoninstance

//提供乙個靜態的公有方法,直接返回singletoninstance.instance

public

static singleton06 getsingleton06()

}

/**

* 列舉方式

**/public

class

singletondemo07

}enum singleton07

}

設計模式 單列模式

何為設計模式呢?簡單的說就是能重複利用的解決方案,當碰到a專案也出現這種情況,b專案也出現這種情況 那麼是否能把這懂實現功能抽象出來,形成一種解決方案.單列模式 顧名思義就是乙個例項 即乙個物件只能初始化一次 作用 減少開闢記憶體空間,節約記憶體開銷 class program 因為a物件在記憶體堆...

設計模式 單列模式

原文 單例模式是最常用到的設計模式之一,熟悉設計模式的朋友對單例模式都不會陌生。一般介紹單例模式的書籍都會提到餓漢式和懶漢式這兩種實現方式。但是除了這兩種方式,本文還會介紹其他幾種實現單例的方式,讓我們來一起看看吧。單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。許多時候...

設計模式 單列模式

構造方法私有化,只有自己的類能訪問,在自己的類中提供乙個方法訪問該例項物件。單例類的所有例項化得到的都是相同的乙個例項 系統記憶體中只存在乙個物件,因此可以節約系統資源 package com.lb author lb remarks 餓漢式 類初始化時,會立即載入該物件,執行緒天生安全,呼叫效率高...