原创

Java设计模式-单例模式


单例设计模式特点

  1. 单例类只能有一个实例。
  2. 单例类必须自己创建自己的唯一实例。
  3. 单例类必须给所有其他对象提供这一实例。

懒汉式单例

class Singleton {
    private static Singleton s = new Singleton();
    private Singleton() {
    }
    public static Singleton getSingleton() {
        return s;
    }
}

Singleton 通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过getInstance()方法访问。

饿汉式单例

class Singleton02 {
    private static Singleton02 s = null;
    private Singleton02() {}
    public static Singleton02 getSingleton() {
        if (s == null) {
            s = new Singleton02();
        }
        return s;
    }
}

饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。

java