如果Singleton很糟糕,那么如何为框架存储全局状态



如果singleton被认为不利于全局状态,特别是可能影响代码主要执行的状态,那么应该如何处理全局状态,例如web框架?

脑海中浮现的直接事物是:

  • 基本Url
  • 基本文件路径
  • 常规配置
  • 日志记录实例
  • 等等

我看不出有任何其他方式,除了单例访问这些,比如应用程序()类或类似的?

将此数据加载到应用程序的全局中。例如,在Web应用程序中,您可以将这些数据存储在应用程序范围中,即使用ServletContextListenerServletContext

此外,您还可以使用一个框架,该框架已经为特定上下文处理全局状态,如Spring。

顺便说一句,有一些情况,如日志记录实例(即Logger logger),它们不是存储在单例实例中,而是存储在每个类中,标记为static final

更多关于Singleton模式用法的讨论:

  • 单身汉有什么不好的

最新更新