2 5設計模式(單例設計模式)

2021-08-08 20:57:11 字數 1549 閱讀 7972

1.設計模式:23種設計模式。對問題行之有效的解決方式。其實它是一種思想。

2.單例設計模式:就是可以保證乙個類在記憶體中的物件唯一性。

解決辦法:

步驟:

1)私有化該類的建構函式。

2)通過new在本類中建立乙個本類物件

3)定義乙個公有的方法,將建立的物件返回。

**例子:

1.餓漢式:一上來就吃

/*

設計模式:23種設計模式。對問題行之有效的解決方式。其實它是一種思想。

1.單例設計模式。

解決的問題:就是可以保證乙個類在記憶體中的物件唯一性。

比如說對於多個程式使用同乙個配置資訊物件時,就需要保證該物件的唯一性。

如何保證物件的唯一性?

1)不允許其他程式用new建立該類物件。

2)在該類中建立乙個本類例項。

3)對外提供乙個方法讓其他程式可以獲取該物件。

步驟:1)私有化該類的建構函式。

2)通過new在本類中建立乙個本類物件

3)定義乙個公有的方法,將建立的物件返回。

*/class single //類一載入,物件就已經存在了

; private

static single s = new single(); //成員變數一般不暴露出去

public

static single getinstance() //這個方法存在是賦予物件的可控性

}class singledemo

}class test

; private

static test t = new test();

public

static test getinstance()

public

void

setnum(int num)

public

intgetnum()

}

3.單例設計模式記憶體分析:

4.另一種表現模式:延遲載入形式,面試這個問得比較多。(懶漢式:用的時候再做)

class single2    //類載入進來,沒有物件,只有呼叫了getinstance方法時,才會建立物件。

//稱為延遲載入形式

; private

static single2 s = null;

private

static single2 getinstance()

}

5.注意:

面試時,問懶漢式比較多,知識點較多。

開發時,用餓漢式:

1.因為單例這個類就是要用物件,所以先載入後載入沒區別。

2.懶漢式存在問題:如果被多執行緒併發訪問時,可能保證不了物件的唯一性,有安全隱患。想保證要改,改了之後效率也降低了。

(25)C 設計模式 單例模式

從 單例 的字面意思上理解為 乙個類只有乙個例項。所以單例模式也就是保證乙個類只有乙個例項的一種實現方法。官方給出的定義 確保乙個類只有乙個例項,並提供乙個全域性訪問點。單例模式的實現 很簡單,也很容易看懂,但每次使用都會想為什們前人會這樣實現單例模式呢?他們如何思考的呢?我們從單例模式的概念入手,...

設計模式 單例設計模式

歷史 最早是建築學領域的模式,然後gof四人由其引申到編碼方面,總結了23種設計模式 設計模式 解決某一類事情最行之有效的方法 2.1 體現 餓漢式,保證物件的唯一性 class singleton 私有化建構函式禁止該類建立物件 private static singleton st new si...

設計模式 單例設計模式

單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。即乙個類只有乙個物件例項 單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。單例設計模式 解決的問題 可以保...