天天看點

Java工程師必知詞彙:單例/多例設計模式

在軟體工程中,設計模式(design pattern)是對軟體設計中普遍存在(反複出現)的各種問題,所提出的解決方案。

設計模式能使不穩定依賴于相對穩定、具體依賴于相對抽象,避免會引起麻煩的緊耦合,以增強軟體設計面對并适應變化的能力。

|單例設計模式|

單例模式(Singleton Pattern)是 Java 中最簡單的設計模式之一。這種類型的設計模式屬于建立型模式,它提供了一種建立對象的最佳方式。

這種模式涉及到一個單一的類,該類負責建立自己的對象,同時確定隻有單個對象被建立。這個類提供了一種通路其唯一的對象的方式,可以直接通路,不需要執行個體化該類的對象。

注意:

1、單例類隻能有一個執行個體。

2、單例類必須自己建立自己的唯一執行個體。

3、單例類必須給所有其他對象提供這一執行個體。

單例設計模式特點:構造方法私有化,類内部提供static方法擷取執行個體化對象。

單例設計模式也分為兩種:懶漢式、餓漢式。餓漢式,在系統加載類的時候就會自動提供Singleton類的執行個體化,而懶漢式是在第一次使用的時候進行執行個體化對象處理。

單例設計模式的最大特點是在整體的運作程式中隻允許産生一個執行個體化對象,但當有了若幹個線程之後,實際上目前的程式就會産生多個執行個體化對象了,此時就不是單例設計模式了。此時問題造成的關鍵在于代碼本身出現了不同步的情況,而要想解決的關鍵核心就在于需要使用synchronized關鍵字進行同步處理。

|多例設計模式|

多例設計指的是可以保留有多個執行個體化對象。多例設計與單例設計的本質是相同的,一定都會在内部提供有static方法以傳回執行個體化對象。

|參考資料|

[1] 阿裡雲大學Java視訊課程

[2] Java開發者

[3] 維基百科