用私有构造器或者枚举类型强化Singleton属性
是什么:
仅仅被实例化一次的类。通常被用来代表一个无状态的对象,如函数或本质上唯一的系统组件。就是单例模式啦。Singleton模式被广泛用于那些需要频繁实例化但又只需要一个实例的类,如配置信息的读取、线程池的创建、数据库的连接等。
强化Singleton属性的好处主要体现在以下几个方面:
节省内存资源:由于整个应用程序中只存在一个实例,因此无需为每个需要该类的部分都创建新的实例,从而节省了内存资源。
保证数据内容一致性:只有一个实例,避免了因多个实例可能导致的数据不一致问题。
简化管理:由于只有一个实例,管理和维护变得更加简单。
全局访问点:通过提供全局访问点,可以方便地访问和操作该类的唯一实例。
怎么强化:
1-公有静态成员是个final域:私有构造器只被调用一次,用来实例化公有的静态final域。由于缺少公有的或者受保护的构造器,保证了全局唯一性。
2-公有的成员是个静态工厂方法:对于静态方法的所有调用,都会返回同一个对象引用,所以永远不会创建其他的实例。(公有的静态域是final的)。本方法的优势,提供灵活性、可以拓展为泛型singleton工厂、通过方法引用作为提供者(这个没很理解)
3-声明一个包含单个元素的枚举类型(最佳),但不适用于拓展超类的情况。