單例設計模式:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點設計模式
1.構造方法私有化工具
2.聲明一個本類對象spa
3.給外部提供一個靜態方法獲取對象實例設計
兩種實現方式:餓漢式和懶漢式code
何種狀況下使用呢?當一個類中沒有屬性(對象的狀態);該類做爲工具類使用很是頻繁;對象
好處:節省內存(由於不斷建立對象會消耗內存)blog
1 public class Practice14 { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 Single s=Single.getInstance(); 6 s.method(); 7 } 8 } 9 //餓漢式 10 class Single{ 11 private static Single single=new Single(); 12 private Single(){ //構造方法私有化,爲了防止在本類外部實例化對象 13 14 } 15 public static Single getInstance(){ 16 return single; 17 } 18 public void method(){ 19 System.out.println("method"); 20 } 21 } 22 //懶漢式 23 class Single2{ 24 private static Single2 single=null; 25 private Single2(){ //構造方法私有化 26 27 } 28 public static Single2 getInstance(){ 29 if(single==null){ 30 single=new Single2(); 31 } 32 return single; 33 } 34 public void method(){ 35 System.out.println("method"); 36 } 37 }