Java中的单例模式就是一个类只能生成一个实例。所以其构造函数因该是私有的,在类的内部调用构造函数生成一个实例,然后类中包含一个static的方法把这个实例传递出去。
如下面的例子:
public class Test
{
public static void main(String[] args)
{
Singleton singleton_1 = Singleton.getInstance();
Singleton singleton_2 = Singleton.getInstance();
System.out.println(singleton_1 == singleton_2);
}
}
class Singleton
{
private static Singleton singleton = new Singleton();
private Singleton()
{
}
public static Singleton getInstance()
{
return singleton;
}
}
运行结果,如下:
true
也可以用下面方式实现:
public class Test
{
public static void main(String[] args)
{
Singleton singleton_1 = Singleton.getInstance();
Singleton singleton_2 = Singleton.getInstance();
System.out.println(singleton_1 == singleton_2);
}
}
class Singleton
{
private static Singleton singleton ;
private Singleton()
{
}
public static Singleton getInstance()
{
if(null == singleton)
{
singleton = new Singleton();
}
return singleton;
}
}
运行结果:
true