https://juejin.cn/post/7325069743143157801

单例模式在软件开发中有很多实际的使用场景,尤其是在需要控制资源访问或者保证一致性的时候。以下是一些常见的单例模式使用场景:

  1. 配置管理:用于管理应用程序的配置信息。通常,配置信息在系统启动时加载,并在整个生命周期中被多处组件共享。
  2. 日志记录:日志记录类通常被设计成单例,以保证全局只有一个日志记录器被创建,它可以被应用程序中的所有组件访问来记录日志。
  3. 数据库连接池:数据库连接是一种稀缺资源,使用单例模式可以保证全局只有一个数据库连接池,以便控制数据库连接的数量和管理。
  4. 硬件接口访问:对于硬件资源如打印机或文件系统等的访问,单例可以确保在任何时候只有一个实例与之通信,避免了资源冲突。
  5. 缓存:应用程序的缓存通常也是单例模式的一个例子,例如,内存中的缓存,它可以被应用程序的不同部分所共享和访问。
  6. 线程池:线程池的管理通常会使用单例模式,因为线程池在整个应用程序中是唯一的,并且需要被多个客户共享。
  7. 应用程序中的服务类:例如,如果有一个用于执行特定任务的服务类,可能需要确保它的行为不会被多个实例中的不一致状态所影响。
  8. 游戏的管理组件:在游戏开发中,经常会有一些管理游戏状态或者提供游戏全局服务的组件,这些组件也常被设计为单例。
  9. 操作系统提供的服务:如窗口管理器或文件系统,这些通常也会被设计成单例,以保证整个系统中只有一个实例。
  10. 驱动对象:对于一些需要与操作系统交互的驱动程序,通常只需要一个实例,因此它们也可以通过单例模式来实现。

在使用单例模式时,开发者需要注意其对测试和系统设计的影响。单例模式可能会降低系统的灵活性,并且可能使得代码更加难以测试。因此,推荐在真正需要全局状态或者严格控制资源的情况下使用单例模式。

单例模式的懒汉饿汉,什么场景用什么比较好

用单例模式为数据库连接池构建一个单例管理类