public class SingletonTest
{
//程序入口。
public static void main(String[] args)
{
//經過Singleton類的靜態方法得到實例。
Singleton s1 = Singleton.getSingleton();
Singleton s2 = Singleton.getSingleton();
//檢驗s1,s2是否是指向同一個對象。
System.out.println(s1 == s2);
}
}
class Singleton
{
//靜態屬性,全部該類的實例共享同一個屬性。
private static Singleton singleton;
// 私有的構造函數,防止從外部生成對象。
private Singleton()
{
System.out.println("Singleton.");
}
//靜態方法,不用生成對象就能夠經過類名來訪問。
//靜態方法內只能訪問靜態的方法。
public static Singleton getSingleton()
{
if (singleton == null)
{
//執行構造函數,生成Singleton對象。
singleton = new Singleton();
}
return singleton;
}
}