常见设计模式之单例模式(Singleton)

来源:互联网 发布:c语言 libevent 编辑:程序博客网 时间:2024/04/30 04:48

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例,并且单例有几种模式,适合不同的场景:

  • 懒汉式:
public class Singleton {    private static Singleton uniqueInstance;//把实例设为私有    private Singleton() {   //构造方法设为私有        super();    }    //加上synchronized,防止多线程创建多个实例,但是性能会降低    public static synchronized Singleton getInstance(){        if(uniqueInstance == null){            uniqueInstance = new Singleton();        }        return uniqueInstance;    }}
  • 饿汉式
//初始化直接创建,但是此时并不一定需要,可能造成资源浪费private static Singleton uniqueInstance = new Singleton();    private Singleton() {        super();    }    public static Singleton getInstance(){        return uniqueInstance;    }
  • 双重锁懒汉式
//加volatile保证 if判断实例为null是一定正确的public class Singleton {    private volatile static Singleton uniqueInstance;    private Singleton() {        super();    }    public static Singleton getInstance() {        if (uniqueInstance == null) {            synchronized (Singleton.class) {                if (uniqueInstance == null) {                    uniqueInstance = new Singleton();                }            }        }        return uniqueInstance;    }}
0 0
原创粉丝点击