一下是单态的设计模式的两种写法
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private Singleton(){}
private static Singleton instance = null;
//这里提供一个同步的得到实例的方法,通过类直接访问
public static synchronized Singleton getInstance() {
if (instance==null)//第一次调用时初始Singleton,以后就不用再生成了
instance=new Singleton();
return instance;
}
}
一般第一种情况更安全,而且常用
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private Singleton(){}
private static Singleton instance = null;
//这里提供一个同步的得到实例的方法,通过类直接访问
public static synchronized Singleton getInstance() {
if (instance==null)//第一次调用时初始Singleton,以后就不用再生成了
instance=new Singleton();
return instance;
}
}
一般第一种情况更安全,而且常用