Java中单例模式的定义:一个类有且只有一个实例,并且自行实例化向整个系统提供
构建方式有两种:
-
懒汉方式:指全局的单例实例在第一次被使用时构建
public class Singleton{ private static Singleton instance = null; private Singleton(){ } public static Singleton getInstance(){ if(instance == null){ instance = new Singleton(); } return instance; } }
-
饿汉方式:指全局的单例实例在类装载时构建
public class Singleton { private final static Singleton instance = new Singleton(); private Singleton(){ } public static Singleton getInstance(){ return instance; } }
显然单例模式的要点有三个
- 一是某个类只能有一个实例
- 二是它必须自行创建这个实例
- 三是它必须自行向整个系统提供这个实例
从具体实现角度来说,就是以下三点
- 一是单例模式的类只提供私有的构造函数
- 二是类定义中含有一个该类的静态私有对象
- 三是该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象