Java中设计模式(2)Singleton模式

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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();

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

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

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航