Singleton模式: Singleton模式主要作用是保证在java应用程序中,一个Class只有一个实例存在。 一般有三种方法: 1 定义一个类,它的构造函数为PRivate的,所有方法为static的。如java.lang.Math 其他类对它的引用全部是通过类名直接引用。例如: public final class Math {
/** * Don't let anyone instantiate this class. */ 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();
class PrintSpooler { //this is a prototype for a printer-spooler class //sUCh that only one instance can ever exist static boolean instance_flag=false; //true if 1 instance public PrintSpooler() throws SingletonException { if (instance_flag) throw new SingletonException("Only one spooler allowed"); else instance_flag = true; //set flag for 1 instance System.out.println("spooler opened"); } //------------------------------------------- public void finalize() { instance_flag = false; //clear if destroyed } }