看到别人介绍的WeakSingleton,觉得不错哦。
WeakSingleton是Singleton的改进版。Singleton好像翻译成单例模式,一般做法就是把类的构造函数做成private,然后提供一个static public的方法来获得类的实例。在类里面有一个static private 的成员变量,每次都是用这个实例的。
为什么要改进呢,因为类里面那个static private 的变量会一直在那里,占用资源,不仅仅是内存资源,可能还会占用比如数据库连接这样的资源,如果你有不经常使用,就希望他能灵活一点,有人用 (一个或多人)的时候,就留着,没人用的时候就释放掉。
怎么做呢,就是使用Weak References,呵呵,当初看《Thinking in Java》的时候,这个概念搞的挺晕,还有另外一个概念是Phatom Reference。复习复习吧,所谓Weak Reference呢,就是说没有别人引用的话,这个对象就会被垃圾收集器回收掉。嗯,待会把书翻出来再看看。
写些代码看看吧:
public class WeakSingleton {
static private WeakSingleton instance = null;
synchronized static public WeakSingleton getInstance() {
if (instance == null) {
instance = new WeakSingleton();
}
return instance;
}
private WeakSingleton() {
// Constructor
}
}
详细介绍请看 http://cpan.uwinnipeg.ca/htdocs/Class-WeakSingleton/Class/WeakSingleton.html