如果Singletons不好,那么如何为框架存储全局状态

Mar*_*ace 0 java oop singleton design-patterns

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

想到的直接事情是:

  • 基本网址
  • 基本文件路径
  • 一般配置
  • 记录实例
  • 等等

我不能看到除了单身之外的任何其他方式来访问这些,如App()类或类似的?

Lui*_*oza 5

将此数据加载到已为应用程序设置的全局位置.例如,在Web应用程序中,您可以将此数据存储在应用程序范围中,即ServletContext使用a ServletContextListener.

此外,您可以使用已经按照Spring等特定上下文处理全局状态的框架.

顺便说一下,有些情况比如Logging实例(即Logger logger)没有存储在单例实例中,而是存储在每个类中,标记为static final.

有关Singleton模式使用的long-never-endind讨论的更多信息: