创建型设计模式-单例模式

Java中单例模式是一种广泛使用的设计模式。

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

  1. 饿汉式

    public class Singleton {
    private static final Singleton INSTANCE = new Singleton();
    private Singleton(){}
    public static Singleton getInstance(){
    return INSTANCE;
    }
    }

  2. 懒汉式

    class Singleton{
    private static Singleton instance;
    private Singleton(){}
    public static synchronized Singleton getInstance(){
    if (instance == null){
    instance = new Singleton();
    }
    return instance;
    }
    }

  3. 双重检查锁定

    class Singleton{
    private static volatile Singleton instance;
    private Singleton(){}
    public static Singleton getInstance(){
    if (instance == null){
    synchronized (Singleton.class){
    if (instance == null){
    instance = new Singleton();
    }
    }
    }
    return instance;
    }
    }

  4. 静态内部类

    class Singleton{
    private Singleton(){}
    private static class SingletonHolder{
    private static final Singleton INSTANCE = new Singleton();
    }
    public static Singleton getInstance(){
    return SingletonHolder.INSTANCE;
    }
    }