成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

設(shè)計(jì)模式——單件模式

testHs / 1891人閱讀

摘要:簡(jiǎn)介單件模式也叫單例模式,是一種創(chuàng)建型模式。類圖中類變量持有唯一的單件實(shí)例,是靜態(tài)方法,可以通過(guò)類名在任何需要的地方使用它,與訪問(wèn)全局變量一樣,但是可以延遲實(shí)例化。

1. 簡(jiǎn)介

??單件模式(Singleton)也叫單例模式,是一種創(chuàng)建型模式。它確保一個(gè)類只有一個(gè)實(shí)例,并提供全局訪問(wèn)。

2. UML類圖

??Singleton中uniqueInstance類變量持有唯一的單件實(shí)例,getInstance()是靜態(tài)方法,可以通過(guò)類名在任何需要的地方使用它,與訪問(wèn)全局變量一樣,但是可以延遲實(shí)例化。

3. 實(shí)例

餓漢式:類加載就初始化實(shí)例,達(dá)到了線程安全的效果,但是在不需要的時(shí)候就實(shí)例化可能會(huì)造成資源浪費(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/76534.html

相關(guān)文章

  • 開發(fā)之路(設(shè)計(jì)模式五:單件模式

    摘要:?jiǎn)渭J教峁┻@個(gè)實(shí)例的全局訪問(wèn)點(diǎn)。實(shí)現(xiàn)單件模式,需要私有構(gòu)造器,一個(gè)靜態(tài)方法,一個(gè)靜態(tài)變量。設(shè)計(jì)到多線程問(wèn)題,同步會(huì)降低程序效率。 擁有獨(dú)立且唯一的對(duì)象 這次講述的是單件模式,就是整個(gè)內(nèi)容里只有一個(gè)實(shí)例化唯一對(duì)象。這么說(shuō)可能有點(diǎn)拗口,這么說(shuō)吧,比方說(shuō),線程池,緩存,注冊(cè)表,日志文件,甚至做JDBC中連接,關(guān)閉,增刪改查數(shù)據(jù)庫(kù)的Connection類(個(gè)人命名也許并不一樣)、工具類等等...

    Steven 評(píng)論0 收藏0
  • 夕陽(yáng)下, 那是我在奔跑——單件模式

    摘要:急切的創(chuàng)建對(duì)象餓漢式以上爲(wèi)?zhàn)I漢式單列設(shè)計(jì),該設(shè)計(jì)是線程安全的,即不同的線程在調(diào)用時(shí)返回的是統(tǒng)一對(duì)象,在加載這個(gè)類時(shí),馬上創(chuàng)建了這個(gè)類的唯一單列實(shí)列。 單件模式(JAVA實(shí)現(xiàn)) 定義 單件模式: 確保一個(gè)類只有一個(gè)實(shí)列, 並提供一個(gè)全局訪問(wèn)點(diǎn) 單件模式和全局變量的區(qū)別 若將對(duì)象賦值給一個(gè)全局變量, 則該對(duì)象需在程序開始時(shí)就創(chuàng)建好, 而改對(duì)象可能不會(huì)使用, 造成資源浪費(fèi), 而單件模式支持...

    lieeps 評(píng)論0 收藏0
  • 常見設(shè)計(jì)模式的定義,應(yīng)用場(chǎng)景和方法

    摘要:命令模式的由來(lái),其實(shí)是回調(diào)函數(shù)的一個(gè)面向?qū)ο蟮奶娲?,命令模式早已融入到了語(yǔ)言之中。 模式是對(duì)某情景下,針對(duì)某種問(wèn)題的某種解決方案。而一個(gè)設(shè)計(jì)模式是用來(lái)解決一個(gè)經(jīng)常出現(xiàn)的設(shè)計(jì)問(wèn)題的經(jīng)驗(yàn)方法。這么說(shuō)來(lái),每個(gè)模式都可能有著自己的意圖,應(yīng)用場(chǎng)景,使用方法和使用后果。本文的行文思路和目的皆在于了解各個(gè)模式的定義,應(yīng)用場(chǎng)景和用實(shí)例說(shuō)明如何在前端開發(fā)中使用。 本文所設(shè)計(jì)到的概念和實(shí)例大多來(lái)自《H...

    xuxueli 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<