一. 單例設計模式

解決的問題: 保證一個類在內存中的對象惟一性.函數

如何保證對象惟一性?spa

思想:對象

1,不讓其餘程序建立該類對象。內存

2,在本類中建立一個本類對象。get

3,對外提供方法,讓其餘程序獲取這個對象。class

 

步驟:構造函數

1,由於建立對象都須要構造函數初始化,只要將本類中的構造函數私有化,其餘程序就沒法再建立該類對象;程序

2,就在類中建立一個本類的對象;方法

3,定義一個方法,返回該對象,讓其餘程序能夠經過方法就獲得本類對象。(做用:可控)static

 

代碼體現:

1,私有化構造函數;

2,建立私有並靜態的本類對象;

3,定義公有並靜態的方法,返回該對象。

//餓漢式

class Single{

    private Single(){} //私有化構造函數。

private static Single s = new Single(); //建立私有並靜態的本類對象。

    public static Single getInstance(){ //定義公有並靜態的方法,返回該對象。

        return s;

    }

}

---------------------------------------------

//懶漢式:延遲加載方式。

class Single2{

    private Single2(){}

private static Single2 s = null;

    public static Single2 getInstance(){

        if(s==null)

            s = new Single2();

        return s;

    }

}

相關文章
相關標籤/搜索