摘要:簡介單件模式也叫單例模式,是一種創建型模式。類圖中類變量持有唯一的單件實例,是靜態方法,可以通過類名在任何需要的地方使用它,與訪問全局變量一樣,但是可以延遲實例化。
1. 簡介
??單件模式(Singleton)也叫單例模式,是一種創建型模式。它確保一個類只有一個實例,并提供全局訪問。
2. UML類圖??Singleton中uniqueInstance類變量持有唯一的單件實例,getInstance()是靜態方法,可以通過類名在任何需要的地方使用它,與訪問全局變量一樣,但是可以延遲實例化。
3. 實例餓漢式:類加載就初始化實例,達到了線程安全的效果,但是在不需要的時候就實例化可能會造成資源浪費。
public class Singleton { private static Singleton instance = new Singleton(); private Singletone() {} public static Singleton getInstance() { return instance; } }
懶漢式:在需要的時候再初始化實例,線程不安全
public class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
懶漢式(同步方法):在需要的時候再初始化實例,線程安全,效率低下
public class Singleton { private static Singleton instance; private Singleton() {} public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
雙重檢查:在需要的時候再初始化實例,線程安全,效率較高
public class Singleton { private static Singleton instance; private Singleton() {}; public static Singleton getInstance() { if (instance == null) { synchronized(Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76534.html
摘要:單件模式提供這個實例的全局訪問點。實現單件模式,需要私有構造器,一個靜態方法,一個靜態變量。設計到多線程問題,同步會降低程序效率。 擁有獨立且唯一的對象 這次講述的是單件模式,就是整個內容里只有一個實例化唯一對象。這么說可能有點拗口,這么說吧,比方說,線程池,緩存,注冊表,日志文件,甚至做JDBC中連接,關閉,增刪改查數據庫的Connection類(個人命名也許并不一樣)、工具類等等...
摘要:急切的創建對象餓漢式以上爲餓漢式單列設計,該設計是線程安全的,即不同的線程在調用時返回的是統一對象,在加載這個類時,馬上創建了這個類的唯一單列實列。 單件模式(JAVA實現) 定義 單件模式: 確保一個類只有一個實列, 並提供一個全局訪問點 單件模式和全局變量的區別 若將對象賦值給一個全局變量, 則該對象需在程序開始時就創建好, 而改對象可能不會使用, 造成資源浪費, 而單件模式支持...
摘要:命令模式的由來,其實是回調函數的一個面向對象的替代品,命令模式早已融入到了語言之中。 模式是對某情景下,針對某種問題的某種解決方案。而一個設計模式是用來解決一個經常出現的設計問題的經驗方法。這么說來,每個模式都可能有著自己的意圖,應用場景,使用方法和使用后果。本文的行文思路和目的皆在于了解各個模式的定義,應用場景和用實例說明如何在前端開發中使用。 本文所設計到的概念和實例大多來自《H...
閱讀 2285·2021-11-15 11:37
閱讀 2954·2021-09-01 10:41
閱讀 787·2019-12-27 11:58
閱讀 747·2019-08-30 15:54
閱讀 715·2019-08-30 13:52
閱讀 2930·2019-08-29 12:22
閱讀 1075·2019-08-28 18:27
閱讀 1452·2019-08-26 18:42