前言:【模式總覽】——————————by xingoohtml
保證類僅有一個實例,而且能夠供應用程序全局使用。爲了保證這一點,就須要這個類本身建立本身的對象,而且對外有公開的調用方法。函數
Singleton 單例類,內部包含一個自己的對象。而且構造方法時私有的。spa
當類只有一個實例,並且能夠從一個固定的訪問點訪問它時。code
【餓漢模式】經過定義Static 變量,在類加載時,靜態變量被初始化。htm
1 package com.xingoo.eagerSingleton; 2 class Singleton{ 3 private static final Singleton singleton = new Singleton(); 4 /** 5 * 私有構造函數 6 */ 7 private Singleton(){ 8 9 } 10 /** 11 * 得到實例 12 * @return 13 */ 14 public static Singleton getInstance(){ 15 return singleton; 16 } 17 } 18 public class test { 19 public static void main(String[] args){ 20 Singleton.getInstance(); 21 } 22 }
【懶漢模式】對象
1 package com.xingoo.lazySingleton; 2 class Singleton{ 3 private static Singleton singleton = null; 4 5 private Singleton(){ 6 7 } 8 /** 9 * 同步方式,當須要實例的纔去建立 10 * @return 11 */ 12 public static synchronized Singleton getInstatnce(){ 13 if(singleton == null){ 14 singleton = new Singleton(); 15 } 16 return singleton; 17 } 18 } 19 public class test { 20 public static void main(String[] args){ 21 Singleton.getInstatnce(); 22 } 23 }