一、什么是单例模式?
单例模式(Singleton)是一种比较常用的设计模式,在应用场景中,单例模式的类的对象有且只有一个。例如打印机只有一台,避免两个任务同时下发到打印机中,通信端口只有一个,避免多个请求同时调用通信端口,这样的情况下,单例模式是非常有用的。
单例模式就是确保一个类只有一个实例,并提供一个访问它的全局访问点。
类图 :
- Singleton() 构造方法私有化:防止外部初始化,由类本身进行实例化
- Singleton singleton 指向自己实例的私有静态引用
- getInstance() 以自己实例为返回值的静态的公有方法:对外提供获取实例的方法
二、模式详解
1、饿汉式:在类加载初始化的时候就主动创建实例,立即加载
package SingletonDemo;
//饿汉式
public class Singleton1 {
private Singleton1() {
}
//立即加载
private static Singleton1 singleton1 = new Sin