實現原理:
單例模式的實現類,由一個私有靜態變量和一個返回該私有靜態變量的Public靜態方法組成。
實現類的構造方法設置爲私有方法,每次調用getInstance時,進行判斷,如果是第一次調用,則創建一個新實例,並且該實例賦值給靜態變量。如果不是第一次調用,則直接返回已賦值過的靜態變量,實現了始終只有一個實例的功能。
舉例:
package java1200_88;
public class singleInstanceDemo {
//必須用static聲明是一個靜態的變量。
private static singleInstanceDemo sidemo = null;
private singleInstanceDemo(){
System.out.println("Instance only generate once");
}
//單例模式的關鍵,是必須要使用if(sidemo==null)的判斷。
public static singleInstanceDemo getInstance(){
if(sidemo == null){
sidemo = new singleInstanceDemo();
}
return sidemo;
}
public static void main(String[] args){
//判斷多次調用的是否是同一個實例。
System.out.println(singleInstanceDemo.getInstance().toString());
System.out.println(singleInstanceDemo.getInstance().toString());
System.out.println(singleInstanceDemo.getInstance().toString());
System.out.println(singleInstanceDemo.getInstance().toString());
}
}
運行結果:
Instance only generate once
java1200_88.singleInstanceDemo@139a55
java1200_88.singleInstanceDemo@139a55
java1200_88.singleInstanceDemo@139a55
java1200_88.singleInstanceDemo@139a55