今天考官问我CLASS如何保证只有一个实例?
我说先设一个全局变量public static i=0,然后在CLASS A()的构造函数里面写I++,在FINALIZE()里面写入I——,,每次实例化的时候判断标志变量I是否等于0再进行实例化,不知道,这个方法可行不?各位高手请赐教!
我说先设一个全局变量public static i=0,然后在CLASS A()的构造函数里面写I++,在FINALIZE()里面写入I——,,每次实例化的时候判断标志变量I是否等于0再进行实例化,不知道,这个方法可行不?各位高手请赐教!
class MyClass{
//在类内部创建自己唯一的实例
private static MyClass myclass=new MyClass(); //私有的构造器
private MyClass(){
}
//再用一个公有的方法给外部提供自己唯一的实例
public static MyClass getInstence(){
return myclass;
}
}
单态模式之二:懒汉式
class MyClass{
//定义自己类的变量
private static MyClass myclass; //私有的构造器
private MyClass(){
}
//给外部提供自己唯一的实例
public synchronized static MyClass getInstence(){
if (myclass==null){
myclass=new MyClass();
}
return myclass;
}
}