单例模式(Singleton)是软件开发中最常用的设计模式之一
单:唯一
例:实例
即某个类在整个系统中只能有一个实例对象可以被获取和使用
要点:
1)、这个类在整个系统中只能有一个实例
——构造器私有化
2)、这个类必须自己创建本身实例
——这个类中含有一个该类的静态变量来保存这个唯一的实例
3)、这个类必须自己向整个系统暴露自身实例
——1.直接暴露
——2.使用静态变量的get方式获取
两种形式
一、直接创建对象(不存在线程安全问题)
1)直接实例化对象(简洁直观)
2)枚举式(最简洁)
3)静态代码块方式(适合单例对象复杂实例化)
二、延迟创建对象
1)线程不安全(适用于单线程)
2)线程安全(适用于多线程),在线程不安全代码基础上改良
3)静态内部类形式(使用于多线程)