java单态模式_Java单态模式
Java的單態模式 Singletom
作用:保證在Java應用程序中,一個Java類只有一個實例存在;所以一般單態類會提供一個返回該類實例的方法。提供一個對對象的全局訪問指針。
優點:節省內存,限制類的個數,有利于Java的垃圾回收機制(Garbage Collection );
缺點及注意點:
1、多線程情況下,懶加載模式可能導致線程不安全因素,例如:同時有兩個線程同時調用getInstance方法獲取實例時,可能兩個線程同時進入if語句判斷塊,此時類尚未被實例化,那么將同時得到兩個不同的實例(此注意點比較容易避免,獲取實例時使用同步sync就可以很好的解決)。
2、當單例類被多個classloader加載的情況下,可能獲得多個單例類的實例(此種情況可能比較難避免,這需要使所有的類使用相同的類加載器加載)。
3、當單例類實現了序列化接口(Serializer)時,我們如果將對象序列化,并反序列化得到實例時,這個實例將是一個新的實例,而不是序列化之前的實例(在這種情況下,需要在此類中添加readResolve方法,將返回對象設置為當前實例,否則會獲得一個不同意序列化之前的類)。
具體實例見類 ?~~ SingletonDemo.java ~~
/**
* @author Verphen
* @date 2013-9-9 下午11:23:42
*/
package org.verphen.designMode;
public class SingletonDemo {
/* 構造方法設置成privae,即實現了單態 */
private SingletonDemo() {
}
/* 返回一個單態模式的類的實例 */
public static final SingletonDemo getInstance() {
return new SingletonDemo();
}
}
總結
以上是生活随笔為你收集整理的java单态模式_Java单态模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用java写一个日历_2017.12.2
- 下一篇: java 实现set_js 实现JAVA