单例模式的出现,其主要的目的是为了使一个类只有一个实例存在。
实现单例模式主要有两种方式(我所知道的)
- 饿汉式:不管有没有需要,都在内部先new出一个实例
public class Singleton{//私有的默认构造子 private Singleton() {} //已经自行实例化 private static final Singleton single = new Singleton(); //静态工厂方法 public static Singleton getInstance() { return single; } }
- 懒汉式:在应用时,先检查是否存在实例,如不存在,new一个实例
//懒汉式单例类.在第一次调用的时候实例化 public class Singleton { //私有的默认构造子 private Singleton() {} //注意,这里没有final private static Singleton single=null; //静态工厂方法 public synchronized static Singleton getInstance() { if (single == null) { single = new Singleton(); } return single; } }