singleton 单一模式 确保类只被实例化一次,避免被重复实例化造成数据错乱。
饿汉模式第一次初始的时候就生成,所以多线程时无需处理
懒汉模式只有用到时才初始,需要判断实例是否创建,考虑多线程(增加锁 双重锁 静态类 枚举的方式)