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

首頁 > 學院 > 開發(fā)設計 > 正文

設計模式-單例模式

2019-11-14 15:42:25
字體:
來源:轉載
供稿:網友

單例模式是設計模式中相對簡單的一個模式,主要用于保證程序中只存在一個類的實例,所以稱為單例。

這一點和枚舉類很相似,枚舉類是存在有限個數(shù)的類的實例,在極端情況下,即枚舉的有限個數(shù)為1,則就是單例模式。

下面介紹單例的兩種方式:

  • 懶漢式:顧名思義,類加載的同時創(chuàng)建類的實例
  • 餓漢式:調用方法時才創(chuàng)建實例,存在線程安全的問題。
// 餓漢式public class Singleton {    // 1.私有化構造函數(shù)    PRivate Singleton(){    }    // 2.內部創(chuàng)建實例,并私有化    private static Singleton instance = new Singleton();        // 3.設置get方法,允許外部創(chuàng)建實例,并設置成static,相應的成員變量也聲明為static    public static Singleton getInstance(){        return instance;    }}

有以下注意點:

  1. 構造函數(shù)一定是需要private的,如果不,則會暴露給其他對象調用,那就不可能是單例了。
  2. 實例只能在內部創(chuàng)建
  3. 需要提供方法,將實例對外暴露,則一定是static,顯然這個方法只能是類調用的。
//懶漢式public class Singleton1 {	private Singleton1(){		}		private static Singleton1 instance = null;		public static Singleton1 getInstance(){		// 一般情況下不創(chuàng)建,只有在在調用并且instance為null的情況下才會創(chuàng)建		// 可能會存在線程安全的問題		if(instance == null){			instance = new Singleton1();		}		return instance;	}}

  與餓漢式區(qū)別就是實例創(chuàng)建的時機。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 河东区| 长岛县| 汨罗市| 利辛县| 东乌珠穆沁旗| 鲜城| 凌源市| 乐都县| 绥宁县| 湟源县| 泊头市| 浮梁县| 临颍县| 谢通门县| 大名县| 石楼县| 民和| 金堂县| 和平县| 郎溪县| 绵竹市| 娄烦县| 张家港市| 永和县| 黄石市| 上栗县| 安溪县| 新晃| 台东县| 象山县| 平山县| 葵青区| 车致| 崇阳县| 连云港市| 宁陕县| 诸城市| 颍上县| 泰州市| 灵寿县| 会宁县|