黑馬程式設計師 10 單列設計模式

2021-06-23 01:21:14 字數 2057 閱讀 1359

設計模式:顧名思義就是解決一類問題的固定步驟,如建房必須打地基

---起柱子

---砌牆

---封頂

---裝修。

單列設計模式:定義是必須保證乙個類在記憶體中只有乙個物件。

從應用場景來看又分為:餓漢式單例設計模式,懶漢式單例設計模式。

餓漢式單列設計模式步驟:

1、私有化建構函式,這樣別人就不能通過new

關鍵隨意建立物件了。

2、但是必須保證乙個類在記憶體中有乙個物件,所以在本類中建立乙個本類的物件,且宣告乙個變數指向。

3、提供乙個公共的靜態的方法獲取本類的物件。

class

single

//3提供乙個公共的靜態方法獲取本類的物件。

public

static

single

getinstance

()

}

class

instance

}

注意:餓漢式單例設計模式,提供的公共方法必須是靜態方法。在成員位置宣告本類的乙個引用型別變數且指向該類物件,如果別人沒使用到,

會出現資源浪費問題。

懶漢式單例設計模式步驟:

1、私有化建構函式。

2、宣告本類的引用型別變數,但不建立本類的物件。 3、

提供乙個公共靜態的方法建立本類的物件並且返回,在建立之前必須要先判斷是否已經建立了該類的物件,

如果已經建立了那麼直接返回即可,如果沒有建立那麼先建立再返回。

**如下:

//懶漢式

class

single2

//提供乙個公共靜態的方法建立本類的物件並且返回。

public

static

single2

getinstance

()

return

s;

}

}

class

test

}

餓漢式單例設計模式:事先先做,先把物件給建立,但缺點是如果沒人使用,浪費資源。

懶漢式單列設計模式存在著執行緒安全問題,那該如何解決呢?

我們可以採用同步**塊進行雙重判斷解決該類問題。

這種方法又叫延時載入單例設計模式:

**如下:

package

itheima

;

//懶漢式

class

single

//提供乙個公共靜態的方法建立本類的物件並且返回。

public

static

single

getinstance

()

}

}

return

s;

}

}

採用雙重判斷,大大提高了效率。不採用同步函式,是因為每次進來都需要判斷鎖,效率低。

黑馬程式設計師 java單列設計模式

asp.net unity開發 net培訓 期待與您交流!以下介紹一下單例設計模式 單例,即單個例項物件。那麼單例設計模式 即解決乙個類在記憶體中只存在乙個物件。那麼想要保證物件唯一 1,為了避免其他程式過多建立該類物件,先禁止其他程式建立該類物件。2,還為了其他程式可以訪問到該類物件,只好在本類中...

黑馬程式設計師 設計模式

一 設計模式概述 1 設計模式概念 我們專案中有很多相同的東西,我們把這些相同的東西抽取出來 符合某種規則,這個稱為設計模式。二 簡單工廠模式 1 如果有寫完乙個類不想讓其他人建立這個類的物件怎麼辦?第一種把構造私有化 第二種定義抽象類 2 物件導向的設計原則?對修改關閉,對擴充套件開放 三 工廠方...

黑馬程式設計師 設計模式

第一講 設計模式 1.設計模式概述 設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性。2.物件導向思想設計原則 在實際的開發中,我們要想更深入的了解物件導向思想,就必須熟悉前人總結過的...