国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

【Java設(shè)計(jì)模式】java單例模式

2019-11-14 14:50:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

解釋一下什么是單例模式:

    單例模式確保某個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。在計(jì)算機(jī)系統(tǒng)中,線程池、緩存、日志對(duì)象、對(duì)話框、打印機(jī)、顯卡的驅(qū)動(dòng)程序?qū)ο蟪1辉O(shè)計(jì)成單例。這些應(yīng)用都或多或少具有資源管理器的功能。每臺(tái)計(jì)算機(jī)可以有若干個(gè)打印機(jī),但只能有一個(gè)PRinter Spooler,以避免兩個(gè)打印作業(yè)同時(shí)輸出到打印機(jī)中。每臺(tái)計(jì)算機(jī)可以有若干通信端口,系統(tǒng)應(yīng)當(dāng)集中管理這些通信端口,以避免一個(gè)通信端口同時(shí)被兩個(gè)請(qǐng)求同時(shí)調(diào)用。總之,選擇單例模式就是為了避免不一致狀態(tài),避免政出多頭。
為什么我要用到單例模式呢?
    就比如,配置文件的讀取類,當(dāng)一個(gè)開著服務(wù)一直跑的java程序,它每隔一段時(shí)間就要用到配置文件中的參數(shù),你總不能讓程序每次一直new 一個(gè)對(duì)象出來(lái)。最好的辦法就是,一啟動(dòng)程序的時(shí)候new一個(gè)對(duì)象,然后后面一直用這個(gè)對(duì)象里面的屬性值就好了。這就要用到單例設(shè)計(jì)模式了。
 
example:
一、懶漢式單例
public class Singleton {      private static class LazyHolder {         private static final Singleton INSTANCE = new Singleton();      }      private Singleton (){}      public static final Singleton getInstance() {         return LazyHolder.INSTANCE;      }  }  

 

 
二、餓漢式單例
//餓漢式單例類.在類初始化時(shí),已經(jīng)自行實(shí)例化 
public class Singleton1 {    private Singleton1() {}    private static final Singleton1 single = new Singleton1();    //靜態(tài)工廠方法     public static Singleton1 getInstance() {        return single;    }}

 

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 青海省| 象山县| 岗巴县| 获嘉县| 武功县| 兴仁县| 宁武县| 贵德县| 咸宁市| 泗洪县| 蒲江县| 西峡县| 曲周县| 沂源县| 通河县| 炉霍县| 姚安县| 白银市| 即墨市| 青浦区| 青河县| 青神县| 泰安市| 金山区| 嵩明县| 丰城市| 青海省| 卢湾区| 汉川市| 南木林县| 咸宁市| 庆云县| 西贡区| 平遥县| 松原市| 武山县| 吉林省| 开阳县| 昔阳县| 耒阳市| 洛扎县|