1. 程式人生 > >2018.7.20 編程題: 寫一個Singleton出來。

2018.7.20 編程題: 寫一個Singleton出來。

構造函數 == 編程題 初始化 安全 所有 編程 實例 return

編程題: 寫一個Singleton出來。

Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。

一般Singleton模式通常有幾種種形式:

第一種形式: 定義一個類,它的構造函數為private的,它有一個static的private的該類變量,在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。
public class Singleton {
    private Singleton(){}
    //在自己內部定義自己一個實例,是不是很奇怪?
    //註意這是private 只供內部調用
    private static Singleton instance = new Singleton();
    //這裏提供了一個供外部訪問本class的靜態方法,可以直接訪問
    public static Singleton getInstance() {
        return instance;
    }
}

第二種形式:

public class Singleton {
    private static Singleton instance = null;
    public static synchronized Singleton getInstance() {
    //這個方法比上面有所改進,不用每次都進行生成對象,只是第一次
    //使用時生成實例,提高了效率!
         if (instance==null)
              instance=new Singleton();
                   return instance; 
      }
}

其他形式:

     定義一個類,它的構造函數為private的,所有方法為static的。
    一般認為第一種形式要更加安全些

2018.7.20 編程題: 寫一個Singleton出來。