廣州IT培訓老師先簡單說一下什麼是單例模式。單例模式是一種創建對象的模式,用於產生這個類的一個具體的實例對象,跟普通的對象創建比起來就那麼一點點區別。

廣州IT培訓老師先簡單說一下什麼是單例模式。單例模式是一種創建對象的模式,用於產生這個類的一個具體的實例對象,跟普通的對象創建比起來就那麼一點點區別。

Java單例模式

廣東IT優就業

區別就在於它可以確保項目中的一個類只會產生一個具體的對象實例。而不會出現第二個對象實例,第三個對象實例。所有使用到這個對象實例的地方實際上用的都是同一個對象,這就是所謂的單例模式,對於初學者還可能陌生,對於資深人員來講這可是最最簡單的設計模式之一。

在Java中使用單例模式的好處:

(1)對於頻繁使用、經常使用的對象,可以省略創建對象也就是沒對象的需要new一個對象所花費的時間,這對於那些重量級的對象來說,還是能少來一個就少來一個,用老對象就好了,減少開銷;

(2)創建對象的次數變少了,對系統內存使用的頻率就會降低,這樣就減輕了GC的壓力,縮短了GC所耗費的時間;

(3)開發項目的過程中遇到類只需要一個對象實例的時候,那麼就是選擇這模式無疑了。

下面給出一個單例的實現,代碼如下:

廣州IT培訓老師先簡單說一下什麼是單例模式。單例模式是一種創建對象的模式,用於產生這個類的一個具體的實例對象,跟普通的對象創建比起來就那麼一點點區別。

Java單例模式

廣東IT優就業

區別就在於它可以確保項目中的一個類只會產生一個具體的對象實例。而不會出現第二個對象實例,第三個對象實例。所有使用到這個對象實例的地方實際上用的都是同一個對象,這就是所謂的單例模式,對於初學者還可能陌生,對於資深人員來講這可是最最簡單的設計模式之一。

在Java中使用單例模式的好處:

(1)對於頻繁使用、經常使用的對象,可以省略創建對象也就是沒對象的需要new一個對象所花費的時間,這對於那些重量級的對象來說,還是能少來一個就少來一個,用老對象就好了,減少開銷;

(2)創建對象的次數變少了,對系統內存使用的頻率就會降低,這樣就減輕了GC的壓力,縮短了GC所耗費的時間;

(3)開發項目的過程中遇到類只需要一個對象實例的時候,那麼就是選擇這模式無疑了。

下面給出一個單例的實現,代碼如下:

Java單例模式

使用這種方式創建單例對象有幾點需要特別注意:

第一點:要保證我們的項目中不會有人意外的創建多餘的對象實例,把Singleton的構造函數設置為private私有的。

第二點:instance對象必須是private私有的並且static靜態化的。如果不是private私有的,那麼instance的安全性無法得到保證。一不小心可能就被其他開發人員來個Singleton.instance=xxx的,那這個對象也就被改變了,如果=null的話,可想而知,在使用這個對象實例的使用,迎接你的將是空對象異常的懷抱。其次,因為工廠方法getInstance()是static靜態方法,因此方法中返回的變量也得是static的。

更多IT精彩推薦:

帶你打開世界第一編程語言的大門 //www.ujiuye.com/zt/java/?wt.mc_id=17009338

相關推薦

推薦中...