1. 程式人生 > >單例設計模式(懶漢式)(餓漢式)

單例設計模式(懶漢式)(餓漢式)

單例設計模式

1、 作用:在應用程式中保證最多隻能有一個例項

2、好處:

  2.1 提升執行效率

  2.2 實現資料共享  案例:application物件

3、懶漢式

  3.1 物件只有被呼叫時才去建立

  3.2 代理例項:

public class SingleTon {
    /**
     * 其他類不能通過new 例項化這個類物件
     * 
     * 對外提供訪問入口
     */
    private void SingleTon(){}
    
    /**
     * 由於物件需要被靜態方法呼叫,把方法設定為static
     * 
     * 由於物件是static,必須要設定訪問許可權修飾符為private。如果是public,就不執行訪問入口
     * 
     
*/ private static SingleTon sing; /** * 例項方法,例項方法必須通過物件呼叫 * * 設定方法為靜態方法 * * 多執行緒訪問下 * * @return */ public static SingleTon getInstance(){ //新增邏輯如果例項化過,直接返回 if(sing==null){ /** * 多執行緒訪問下,可能出現if同時成立的情況,新增鎖
*/ synchronized (SingleTon.class) { /** * 雙重驗證 */ if(sing==null){ sing=new SingleTon(); } } } return sing; } }

  3.3 由於添加了鎖,所以導致效率低

4、餓漢式

  4.1 解決了懶漢式中多執行緒訪問可能出現同一物件和效率低問題

public class SingleTon {
    private void SingleTon(){}
    //在類載入時進行例項化    不會出現多執行緒訪問情況
    private static SingleTon sing =new SingleTon();
    public static SingleTon getInstance(){
        return sing;
    }
}