單例模式實現(七種)

2021-10-16 07:16:16 字數 2269 閱讀 2169

單例模式確保乙個類只有乙個例項,並提供乙個全域性訪問點,實現單例模式的方法是私有化建構函式,通過getinstance()方法例項化物件,並返回這個例項

保證在jvm中只有乙個例項

優點:

1、單例類只有乙個例項

2、共享資源,全域性使用

3、節省建立時間,提高效能

public

class

singleton

//只能通過該方法獲得例項

public singleton getinstance()

}

/**

* @description: 餓漢式

* @classname design_pattern

* @author: 王瑞文

* @date: 2021/1/16 20:14

*/public

class

singleton1

//只能通過該方法獲得例項,但是在多執行緒的情況下可能會被初始化多次下

public

static singleton1 getinstance()

return singleton;

}}

/**

* @description: 餓漢式

* @classname design_pattern

* @author: 王瑞文

* @date: 2021/1/16 20:14

*/public

class

singleton1

//只能通過該方法獲得例項,但是在多執行緒的情況下可能會被初始化多次下

// public synchronized static singleton1 getinstance()

return singleton;

}}

/**

* @description: 餓漢式

* @classname design_pattern

* @author: 王瑞文

* @date: 2021/1/16 20:14

*/public

class

singleton2

//只能通過該方法獲得例項,但是在多執行緒的情況下可能會被初始化多次下

// public synchronized static singleton1 getinstance()

}return singleton;

}}

/**

* @description: 餓漢式

* @classname design_pattern

* @author: 王瑞文

* @date: 2021/1/16 20:14

*/public

class

singleton4

//只能通過該方法獲得例項

public singleton4 getinstance()

//靜態內部類特徵:繼承懶漢式有點,同時解決雙重檢驗所第一次載入慢的問題

public

static

class

singletonutils

}

/**

* @description:

* @classname design_pattern

* @author: 王瑞文

* @date: 2021/1/16 21:30

*/public

enum enumsingleton

}

public

class

singletonmanager

}public

static object getservice

(string key)

}}

使用singletonmanager 將多種單例類統一管理,在使用時根據key獲取物件對應型別的物件。這種方式使得我們可以管理多種型別的單例,並且在使用時可以通過統一的介面進行獲取操作,降低了使用者的使用成本,也對使用者隱藏了具體實現,降低了耦合度。

另外在ssm框架中我們知道把類交給ioc容器去管理的話,預設建立的也是單例模式

七種方法實現單例模式

三 懶漢式應用例項 四 雙重檢查 推薦使用 五 靜態內部類 推薦使用 六 列舉 推薦使用 所謂類的單例設計模式,就是採取一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項的方法 靜態方法 比如hibernate的sessionfactory,它充當資料儲...

單例模式的七種寫法

第一種 懶漢,執行緒不安全 public class singleton public static singleton getinstance return instance 第二種 懶漢,執行緒安全 public class singleton public static synchronize...

七種單例模式的寫法

餓漢式 特點 在類載入時例項化,執行緒安全,如果沒有使用instance的話比較耗費資源 class singletondemo public static singletondemo getinstance 懶漢式 非執行緒安全 特點 使用時再例項化 class singletondemo pub...