日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

創(chuàng)建型設計模式--單例模式

系統(tǒng) 2067 0

單例模式 (Singleton)


??? 在一個系統(tǒng)要求一個類只有—個實例時才應當使用單例模式


??? 單例類(singleton)可以保證系統(tǒng)中只可能由該類的一個對象,而且這個對象由類自行初始化

?

?

?? 懶漢式單例類

?

??? (1) 這個類被加載時,靜態(tài)變量singleton會被初始化,此時類的私有構(gòu)造器會被調(diào)用,單例類的惟一實例就被創(chuàng)建出來了。


??? (2) Java語言中單例類的—個最重要的特點是類的構(gòu)造于是私有的,從而避免外界利用構(gòu)造子直接創(chuàng)建出任意多的實例。由于構(gòu)造于是私有的,因此此類不能被繼承。

    public class LazySingleton {
	private static LazySingleton singleton = null;

	private LazySingleton() {
	}

	// 靜態(tài)工場方法使用了同步化,以處理多線程環(huán)境。
	synchronized public static LazySingleton getInstance() {
		if (singleton == null) {
			singleton = new LazySingleton();
		}
		return singleton;
	}
}
  

?

??? 餓漢式單例類

?

??? (1) 單從資源利用效率角度來講,這個比懶漢式單例類稍差些從速度和反應時間角度來講,則比懶漢式單例類稍好。


??? (2) 然而,懶漢式單例類在實例化時,必須處理好在多個線程同時首次引用此類時的訪問限制問題,特別是當單例類作為資源控制器在實例化時必然涉及資源初始化.而資源初始化很有可能耗費時間。這意味著出現(xiàn)多線程同時首次引用此類的幾率變得較大。

    class EagerSingleton {
	private static final EagerSingleton singleton = new EagerSingleton();

	private EagerSingleton() {
	}

	public static EagerSingleton getInstance() {
		return singleton;
	}
}
  

創(chuàng)建型設計模式--單例模式


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 贺兰县| 安化县| 陈巴尔虎旗| 门头沟区| 信阳市| 黄石市| 常宁市| 东台市| 彰武县| 图木舒克市| 莆田市| 新竹县| 平乐县| 九江县| 株洲县| 渭源县| 米易县| 周至县| 莲花县| 萨迦县| 乡城县| 浙江省| 新河县| 旅游| 神池县| 黄梅县| 阿尔山市| 英吉沙县| 南靖县| 莱西市| 泗阳县| 元阳县| 鹿邑县| 仪陇县| 全州县| 明溪县| 恩施市| 滦南县| 阿勒泰市| 青阳县| 章丘市|