这种模式很简单,有一定经验的程序员几乎都用过,这里就不多讲,给出代码,看了就清楚了。
一种是饿汉型的,如下:
public class Singleton {
//把构造函数调成私有的话,就不允许用户用new的方式来创建对象了
private Singleton(){}
private static Singleton instance = new Singleton();
//调用这下面这个方法就可以得到单实例了
public static Singleton getInstance() {
return instance;
}
}
为什么叫饿汉呢?我想可能是饿汉急于找东西吃,急于得到一个实例,于是在声明的时候也new成实例了。
另一种是懒汉型的,例如:
public class Singleton {
//先声明
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
if (instance==null) //先做个判断
instance=new Singleton();
return instance;
}
}
懒汉型的等到需要返回的时候再去判断、创建。