关于JAVA中的singleton模式

来源:百度知道 编辑:UC知道 时间:2024/06/21 22:45:40
哪位能够跟我具体讲解下Singleton的原理,最好把代码写出来每行的注释写详细点。(去网上复制的就免了)谢谢。

package test;

public class Singleton {
private Singleton s;
private Singleton()
{

}
public static Singleton getSigleton()
{
if(s==null)s=new Singleton();
return s;
}

}
这就是一个单例模式,我想应该不用注释了,原理就是这个类的构造方法private了,所有在外边不能调用,也就不能new Singleton();得到实例,那么
想得到实例就得调用它的静态方法getSigleton();即Singleton.getSigleton();就会返回一个Singleton的实例,注意此方法中的语句,即如果你是第一次调用这个方法那么它会给你new一个实例,以后再调用得到的都是这个实例,也就是说从始至终就只有一个Singleton的实例,这就是单例模式。

这个单例模式一般是只能创建一个实例的实现,如网络游戏里每个特定的地图,对于任意一个玩家,这个地图都是唯一的. 其特点是有一个私有的构造器和一个公开的获取实例的方法。比如:

//这是第一种,叫饿汉模式,无论是否需要,都弄一个出来

public class Singleton{
private static final Singleton st=new Singleton();
private Singleton(){

}
public static Singleton getInstance(){
if(st==null)
{
return st;

}
}
}

//这是另外一种,叫懒汉模式,你不要我就不给弄,你要了再说.

public class SingleTon{
private static Single