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