單例設計模式和main方法

設計模式就是在大量的實踐中總結和理論以後優選的代碼結構、編程風格、以及解決問題的思考方式。java

說白了設計模式就是在實際編程中逐漸總結出的解決問題的套路,相似於數學公式。編程

類的單例設計模式:在開發過程當中有且只有一個實例化對象。設計模式

怎麼作到在整個系統運行過程當中,這個類只被實例化一次?不論在哪隻調用這一個實例?數組

  

什麼狀況下使用單例設計模式?安全

  實例化對象的建立要消耗大量的時間和資源,例如構造方法中的代碼行太多。或者頻繁的new的新對象沒有必要。spa

  

//餓漢式:一開始就new一個對象出來
public class Singleton { //私有構造方法,調用這個類的人就不能直接使用new來建立對象 private Singleton(){ }
//私有的Singleton類型的類變量 private static Singleton INSTANCE = new Singleton();
//構建返回返回類變量的方法 public static Singleton getInstance(){ return INSTANCE; } }

  

//懶漢式:最開始,對象是null,直到有第一我的調用才new一個對象,以後全部的調用都用這個對象
public class Singleton {

//先私有化構造方法,不能讓外邊直接new對象
    private Singleton() {
    }

//私有化一個對象
    private static Singleton instance = null;

//公共方法:判斷instance是否爲null,爲null就實例化,不是null就直接返回instance
    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

}
//此版本的懶漢式存在安全問題

  

理解main方法的語法設計

因爲java虛擬機須要調用main()方法,因此該方法的訪問權限必須是public。又由於java虛擬機在執行main()方法時沒必要建立對象,因此該方法必須是static的。該方法接收一個String類型的數組參數,該數組保存執行java命令時傳遞給全部運行的類的參數。對象

相關文章
相關標籤/搜索