單例模式 自我理解

單例模式,什麼是單例模式,就是隻有一個實例。



構造方法爲什麼用private修飾?因爲public是公共的,所有人都可以去訪問,達不到我們“單例”的目的,而private是私有的,只有所在的類內部才能訪問,保證了我們“單例”的目的。

public Singleton getInstance(){}是什麼?這是一個返回類型爲Singleton的實例方法,如果我們想在main函數中調用它,需要把它new出來,但是main函數中可以new出一個Singleton麼,當然不可以,因爲構造函數的修飾詞是private啊,這代表了我們必須在Singleton類中實例化,而爲了保證“單例”我們繼續使用private修飾,private Singleton singleton =  new Singleton();並且我們要將實例方法改爲靜態方法,public static Singleton getInstance(){} 爲什麼呢,因爲調用靜態方法可以直接用類名.方法名啊,這樣就沒有在外部類中new的問題了。

這裏需要注意的是,我們的靜態方法,什麼樣的人可以訪問,當然是同樣是靜態的人纔可以訪問,所以纔有private static Singleton singleton =  new Singleton();

最後爲了看看我們是否真的只生成一個實例,我們用主函數中的幾行代碼進行測試。


發佈了37 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章