java設計模式之單列模式(Singleton)

2021-09-23 22:27:24 字數 1016 閱讀 3431

本篇只是簡單介紹單列模式,主要是讓初學者理解單列模式,各種加鎖、多實現、業務場景待以後補充。
關鍵字:只產生乙個例項,構造器私有化。

構造器私有化(private),是為了禁止singleton類外部呼叫建構函式。如果從singleton類以外的**中呼叫建構函式

(new singleton),就會出現編譯錯誤。singleton模式在於確保任何情況下都只生成乙個例項。

1.1.餓漢模式:不管你需不需要我都例項化。

public

class

singleton

public

static singleton getinstance()

}

測試類:

public

class

singletonmain

else

}

1.2.懶漢模式:只有你需要的時候我才給

public

class

singletonlazy

//執行緒不安全

// public static singletonlazy getinstance()

// return singletonlazy;

// }

//執行緒安全,但鎖的是方法,粗粒度鎖

public

static

synchronized singletonlazy getinstance()

return singletonlazy;

}//先呼叫的停止一秒,多執行緒測試

private

void

slowdown()

catch

(interruptedexception e)

}}

Java設計模式之單列模式

單列模式 單一,也就是說乙個類只能有乙個物件。就類似於有些軟體只能開啟一次,當需要保證乙個物件在記憶體中的唯一性時,就需要引入單列模式。建立單列模式分三步操作 1.將建構函式私有化 2.在類中建立乙個本類物件 3.提供乙個公有的介面來返回建立的類 我們訪問類裡面的資料時,分兩種情況 1.通過例項化物...

詳談設計模式之單列模式

掌握設計模式的層次 剛開始學程式設計不久,聽說過什麼是設計模式 由很長時間的程式設計經驗,自己寫了很多 其中用到了設計模式,但是自己卻不知道 學習過了設計模式,發現自己已經在使用了,並且發現了一些新的模式挺好用的 閱讀了很多別人寫的原始碼和框架,在其中看到別人設計模式,並且能夠領會設計模式的精妙和帶...

設計模式 單列模式

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