java单例注册表_Java单例模式(Singleton)
單例模式主要用于:有一些對象我們只需要一個,比如:線程池、緩存、對話框、處理偏好設置、注冊表對象、日志對象以及配置文件對象、數據庫連接對象等等。單例模式常用于管理共享資源,例如:數據庫連接或者線程池。
Java Singleton模式就為我們提供了這樣實現的可能。使用Singleton的好處還在于可以節省內存,因為它限制了實例的個數,有利Java垃圾回收(garbagecollection)。
這些對象只能有一個實例,如果制造出多個實例,就會導致很多問題如:程序異常、資源使用過量等。
單例模式很像靜態類,它自身有一個全局訪問點但是又沒有全局變量的缺點:如果將一個對象賦值給一個全局變量,那么你必須在程序一開始的時候就得創建好對象,如果執行過程中沒有用到,就會非常耗費資源。
單例模式主要有三個部分:
1.私有構造方法:防止外部實例化,只有內部可以實例化
2.有一全局靜態方法:
(1).可以訪問私有的構造方法進行實例化。
(2).外部調用靜態方法,如果存在singleton實例就返回,如果不存在則創建一個實例.自己進行對實例進行管理.
3.靜態變量:利用一個靜態變量來記錄Singleton的唯一實例。
單例模式的UML非常簡單,但是真正用好單例模式,也是有點難度的
單例模式的源代碼如下:
publicclassSingleton{
//利用一個靜態變量來記錄Singleton類的唯一實例
privatestaticSingleton?uiqueInstance;
//把構造函數聲明為私有的,外部不可以實例化,只有內部可以實例化
privateSingleton(){
}
//外部通過調用靜態方法getInstance(),來獲得實例化對象
publicstaticSingleton?getInstance(){
//內部自己管理實例,始終保證只有一個實例
if(uniqueInstance?==null)?{
//如果沒有實例,則創建實例,在類的內部可以訪問構造函數,進而實例化
uniqueInstance?=newSingleton();
}
//如果已經存在就直接將實例返回就行了
returnuniqueInstance;
}
}
總結
以上是生活随笔為你收集整理的java单例注册表_Java单例模式(Singleton)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果m2芯片性能详细介绍(苹果m2芯片性
- 下一篇: java 哈希一致算法_一致哈希算法Ja