饿汉式:
class Single
{
// 提前做好!
private static final Single s = new Single();
// 私有化 构造函数 无法使用new 创建对象!
private Single(){}
// 对外提供接口
public static Single getInstance()
{
return s;
}
}
懒汉式:
懒汉 顾名思义 就是懒呗
什么时候用到 什么时候创建!
class Single1
{
private static final Single1 s = null;
private Single1(){}
public static Single1 getInstance()
{
// 什么时候调用 是什么时候 赋值 懒汉式
if(a==null)
// 此处 线程不安全!(不建议使用,尽量使用 饿汉式!)
s = new Single1();
return s;
}
}
更新: 带有同步所的 懒汉式
/** Returns singleton class instance */
public static ImageLoader getInstance() {
if (instance == null) {
synchronized (ImageLoader.class) {
if (instance == null) {
instance = new ImageLoader();
}
}
}
return instance;
}