歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java設計模式之單例模式(Singleton)

Java設計模式之單例模式(Singleton)

日期:2017/3/1 9:07:16   编辑:Linux編程

設計模式是前輩的一些經驗總結之後的精髓,學習設計模式可以針對不同的問題給出更加優雅的解答

單例模式可分為倆種:懶漢模式和餓漢模式。倆種模式分別有不同的優勢和缺點


懶漢模式

class Singleton{
        private static  Singleton instance = new Singleton();

        private test(){
    
    }
        public static test getInstance(){
        return instance;
    }

}   
  1. 將構造函數私有化,不允許外界創建對象
  2. 創建類的唯一實例
  3. 提供一個用於獲取實例的方法,使用Singlenton.getInstance();來創建

餓漢模式

class test{
        private static  test instance;
        private test(){
    }
    public static test getInstance(){
            if(instance != null){
            return new test();
        }
    return instance;
    }
}
  1. 同樣將構造函數私有化
  2. 聲明實例但不初始化
  3. 在方法內部判斷有沒有創建,沒有就new出來,有了就直接使用

總結:

餓漢模式在類加載時候自動創建實例,類加載慢,運行時獲取對象快(線程安全)

懶漢模式在類加載時候沒有加載實例,在創建的時候才會生成實例,類加載快,運行時候獲取對象慢(線程不安全)

Copyright © Linux教程網 All Rights Reserved