跟著例項學習設計模式(1) 單例模式(建立型)

2021-07-03 15:24:24 字數 1119 閱讀 7619



單例模式屬於建立型設計模式。

設計意圖:保證乙個類只有乙個例項,並提供乙個訪問它的全域性訪問點。

單例模式根據例項化物件時機的不同分為兩種,一種是餓漢式單例,一種是懶漢式單例。餓漢式單例在單例類被載入時候,就例項化乙個物件交給自己的引用;而懶漢式在呼叫取得例項方法的時候才會例項化物件。

**如下:

餓漢式:

package com.home.singleton;

/** * 餓漢式單例

* * @author gaoxu 實踐出真知!

*/public class singletonb ;

public static singletonb getinstance()

}

懶漢式:

package com.home.singleton;

/** * 懶漢式單例

* * @author gaoxu 實踐出真知!

*/public class singletona ;

public static synchronized singletona getinstance()

return singleton;

}}

單例模式是設計模式中最簡單的,它有以下幾個要素:

我們看到了如何構建乙個單例類的方式了,那麼在實際應用中,單單寫這個乙個單例類到底有什麼用呢?讓我們來看乙個例項。

import org.slf4j.logger;

import org.slf4j.logge***ctory;

/** * @author gaoxu 實踐出真知!

*/public class springtools

private springtools()

return singletionholder.instance.context;

}}

這樣我們就可以通過介面提供的方法訪問容器中的類。

單例模式的優點:

通過剛才的例項,我們也可以真實的體驗到單例模式的這些優點,spring ioc容器的訪問在應用中相當頻繁,所以單例模式載入在適合不過了。

跟著例項學習設計模式(2) 靜態工廠(建立型)

靜態工廠設計模式是建立型設計模式。設計意圖 例項化出我們需要的類物件,這些物件可以實現不同的功能,也可能只實現乙個功能!類圖關係 通過類圖關係我們可以看到靜態工廠負責建立operationfather類的物件,我們來看一下例項 我們是想實現乙個計算器,計算器的功能暫時有加法 減法功能,以後可能隨時增...

跟著例項學習設計模式(3) 工廠方法(建立型)

工廠方法屬於建立型設計模式。設計意圖 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。靜態工廠使用物件導向的方式,有效的解決了增加新產品給客戶端和實現類帶來的 修改問題,封裝了建立過程,減低了增加新產品帶來的 修改錯誤,但是新增功能需要修改客戶端 和工廠建...

設計模式1 單例模式

文章引用出處 singleton模式是最簡單最常用的設計模式。1,定義 確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個該類。2,單例模式優點 1 單例模式在記憶體中只有乙個例項,減少了記憶體的開支。2 單例模式只生成乙個例項模式,減少了系統效能的開銷。如當乙個物件的產生需要比較多的系統資...