Java單例模式和多例模式知識點總結

2021-08-07 11:10:50 字數 1346 閱讀 7684

一、單例定義

單例:只存在乙個例項

分類 : 餓漢模式 和 懶漢模式

懶漢:只有第一次呼叫的時候會去建立乙個例項,後來呼叫的都是第一次建立的那個例項

餓漢:每一次呼叫都會去建立乙個例項

單例類的特點:

1.構造私有

2.提供公共訪問入口

3.提供乙個私有的變數儲存當前例項

二、單例**

package com.lei.test;

/** * 單例 :只有乙個例項

* 分類: 懶漢模式、餓漢模式

* 懶漢:只有第一次呼叫的時候會去建立乙個例項,後來呼叫的都是第一次建立的那個例項

* 餓漢:每一次呼叫都會去建立乙個例項

*/public class singlete

//提供共有的訪問入口

public static singlete getinstance()

return singlete;

/*** 餓漢模式

* return new singlete();

*/ }}

三、測試

package com.lei.test;

public class singletetest

}

四、多例定義

多例就是有且僅有幾個例子,你只能用它列舉的幾個例項,你不可以自己去建立新的例項。

注意:這裡的多指的並不是無限,他僅僅是幾個

jdk1.5之前是沒有列舉的,就是用多例來代替列舉的功能的,所以多例的功能其實和列舉是一樣的。

五、多例**示例

package com.lei.test;

/** * 多例

* author: pibigstar

*/public class season

//季節只有四個物件,且不能被修改

public static final season spring = new season("春天", "萬物甦醒");

public static final season summer = new season("夏天", "烈日炎炎");

public static final season autumn = new season("秋天", "秋風氣爽");

public static final season winter = new season("冬天", "寒風瑟瑟");

@override

public string tostring() }

Java 單例 多例設計模式

單例和多例的設計模式特點就是構造方法被私有化,外部無法直接用 new 例項化。只能通過呼叫類內部提供的靜態方法取得例項。單例設計模式 餓漢式單例設計模式class singleton 定義全域性常量的時候直接例項化 private static final singleton instance ne...

Spring 單例模式和多例模式

singleton 單例 只有乙個共享的例項存在,所有對這個bean的請求都會返回這個唯一的例項。prototype 多例 對這個bean的每次請求都會建立乙個新的bean例項,類似於new。spring bean 預設是單例模式。單例測試 測試類user user1 user context.ge...

Spring單例模式和多例模式

預設情況下scope singleton 那麼該bean是單例,任何人獲取該bean例項的都為同乙個例項 scope prototype 任何乙個例項都是新的例項 scope request 在web應用程式中,每乙個例項的作用域都為request範圍 scope session 在web應用程式中...