Singleton模式主要作用是保证在中,一个Class只有一个实例存在。
一般有三种方法:
1 定义一个类,它的构造函数为private的,所有方法为static的。如java.lang.Math
其他类对它的引用全部是通过类名直接引用。例如:
public final class Math {
private Math() {}
public static int round(float a) {
return (int)floor(a + 0.5f);
}
...
}
2 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时
实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。例如:
public class Runtime {
private static Runtime currentRuntime = new Runtime();
public static Runtime getRuntime() {
return currentRuntime;
}
...
}
3 定义一个类,它的构造函数为private的,它有一个static的private的boolean变量,用于表示
是否有实例存在。例如:
class PrintSpooler
{
//this is a prototype for a printer-spooler class
//such that only one instance can ever exist