設計模式之Singleton

設計模式總共有23種模式這僅僅是爲了一個目的:解耦+解耦+解耦...(高內聚低耦合知足開閉原則設計模式

介紹:

Singleton模式主要做用是保證在Java應用程序中,一個類Class只有一個實例存在(理解爲,居民身份證號具備惟一性)。安全

能夠節省內存,由於它限制了實例的個數,有利於Java垃圾回收(garbage collection)。spa

 

模式結構:

1.單例類的構造方法爲私有。線程

2.提供一個自身的靜態私有成員變量。設計

3.提供一個公有的靜態工廠方法。code

實現:

public class Singleton {  
     private static Singleton instance;  
     private Singleton (){
     }   
     public static Singleton getInstance(){    
       if (instance == null){
           synchronized(Singleton.class){
               if (instance == null)
                   instance = new Singleton(); 
           }
       }
       return instance;
     }
     
 }

考慮到線程安全會用到synchronized標識符。咱們知道靜態方法是屬於類的而不屬於對象的。一樣的,synchronized修飾的靜態方法鎖定的是這個類的全部對象。對象

相關文章
相關標籤/搜索