23設計模式之單利設計模式

2021-09-13 23:46:10 字數 1103 閱讀 7509

單利設計模式設計的類有且只有乙個例項物件

單例設計模式只應在有真正的「單一例項」的需求時才可使用。

私有化構造方法,有幾個構造方法就私有化幾個,保證其他地方不能例項化本類物件。

本類中建立乙個本類的例項化物件。

提供乙個能夠返回本類物件的方法。

餓漢式:在建立類屬性時,建立乙個本類物件引用並直接new出物件。(載入本類時就建立物件)

懶漢式:在返回本類物件的方法中建立物件。(需要時呼叫方法再建立物件)

餓漢式:

/**

* 餓漢式

*/public class ******

//2.建立乙個成員變數

private static ****** ****** = new ******();

//3.提供乙個返回本類例項物件的方法

public static ****** getinstance******()

}

餓漢式設計出的類是執行緒同步(執行緒安全)的。

2.懶漢式:

/**

* 懶漢式

*/public class ******

//2.建立乙個成員變數

private static ****** ******;

//3.提供乙個返回本類例項物件的方法

public static ****** getinstance******()

return ******;

}}

懶漢式設計的類是執行緒不同步的(執行緒不安全),如果同時有多個執行緒訪問本類,有可能導致本類例項不唯一。

為了解決這種問題,融入多執行緒程式設計,下面來看一下多執行緒下的單利設計模式:

/**

* 多執行緒下的單例模式(懶漢式)

*/public class ******

public static ****** getinstance()

}} return ******;

}}

餓漢式:在建立類屬性時就建立了本類物件,執行緒安全。

懶漢式:需要得到單利物件時再建立物件,執行緒不安全,需要結合多執行緒設計。

設計模式之單利模式

什麼是單例模式?顧名思義,單例模式,就是對應類自始至終就只有一 例項物件。因為其建構函式私有化,所以不能再類外建立物件。利用靜態成員方法通過類的公有來訪問類的私有方法,從而達到構造乙個例項物件。建構函式宣告為private或protect防止被外部函式例項化,內部儲存乙個private static...

23中設計模式詳解 單利模式

單例模式 保證一類只有乙個例項,並且對外提供訪問該類例項的全域性訪問點 應用場景 優點 單利只產生乙個例項,減少了系統效能的開銷,當乙個物件的產生需要較多資源的時候,就會利用單利來駐留 package com.spongeli.signleton 單列模式 餓漢式 特點 執行緒安全,效率高,但是沒有...

設計模式 單利模式

單例模式的核心是保證乙個類只有乙個例項,並且提供乙個訪問例項的全域性訪問點。1 spring中bean物件的模式實現方式 2 servlet中每個servlet的例項 3 springmvc框架中,控制器物件是單例模式 4 專案中,讀取配置檔案的類,一般也只有乙個物件。沒有必要每次使用配置檔案資料,...