Java设计模式——单例模式

2019-01-29  本文已影响0人  MichaelLee826

单例模式有三个特点:

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

单例模式的用处:


五种实现单例模式的方法:

1、饿汉式(先创建出实例):

class Singleton{
    //静态实例
    private static Singleton singleton = new Singleton();
    
    //构造函数
    private Singleton(){};
    
    public Singleton getInstance(){
        return singleton;
    }
}

2、懒汉式(需要时才创建实例):

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

3、枚举

enum Singleton{
    INSTANCE;  //枚举成员
    
    private Singleton singleton;
    
    private Singleton{
        singleton = new Singleton();
    }

    public Singleton getInstance(){
        return singleton;
    }
}

//获得实例:Singleton.INSTANCE.getInstance();

4、静态内部类:

class Singleton{
    //静态内部类
    private static calss SingletonHolder{
        private static final Singleton singleton = new Singleton();
    }
    
    //构造函数
    private Singleton(){};

    public static final Singleton getInstance(){
        return SingletonHolder.singleton;
    }
}

5、静态代码块

class Singleton{
    //静态变量
    private static Singleton singleton = null;
    
    //构造函数
    private Singleton(){};

    //静态代码块
    static{
        singleton = new Singleton();
    }

    public Singleton getInstance(){
        return singleton;
    }
}

欢迎关注我的微信公众号:


“学而有益”微信公众号
上一篇 下一篇

猜你喜欢

热点阅读