1. 程式人生 > >單例類(Singleton)一個類始終只能建立一個例項

單例類(Singleton)一個類始終只能建立一個例項

單例類(Singleton)一個類始終只能建立一個例項

構造器使用private修飾、;提供一個public方法作為該類的訪問點,該方法必須使用static修飾來作為類成員;使用一個成員變數快取已經建立的物件,該成員變數要被靜態方法呼叫,所以也應該用static修飾。

 class Singleton

{

    //使用一個變數來快取曾經建立的例項

    private static Singleton instance;

    //對構造器使用private修飾,隱藏構造器

    private Singleton()

    {

    }

    //提供一個靜態方法,用於返回Singleton

例項;該方法可以加入自定義控制,保證只產生一個Singleton物件

    public static Singleton getInstance()

    {

        //如果instance為null,則表明還不曾建立Singleton物件

        //如果instance不為null,則表明已經建立S了ingleton物件,將不會重新建立新的例項

        if(instance==null)

        {

            instance=new Singleton();

        }

        return instance;

    }

}

public class SingletonTest

{

    public static void main(String[] args)

    {

        //建立Singleton物件不能通過構造器,只能通過getInstance方法來得到例項

        Singleton s1=Singleton.getInstance();

        Singletons2=Singleton.getInstance();

        System.out.println(s1==s2);//將輸出true

    }

}