新闻正文
Java中设计模式(2) Singleton模式
来源:JAVA天堂
JAVA学习者
2007-6-4 02:17:58
网友评论 0 条
字体:[
大
中
小]
~我要投稿!
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
}
}
收藏到ViVi 收藏此页到365Key
上一篇:
JavaOne大会发布《J2EE核心模式》第二版 下一篇:
设计模式(1)Factory模式和Abstract Factory模式