java - 如果单例很糟糕,那么如何存储框架的全局状态

标签 java oop design-patterns singleton

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

首先想到的是:

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

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

最佳答案

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

此外,您还可以使用已经在每个特定上下文中处理全局状态的框架,例如 Spring。

顺便说一下,有些情况像Logging实例(即Logger记录器)不存储在单例实例中,而是存储在每个类中,标记为静态最终

有关单例模式使用的长期无休止的讨论的更多信息:

关于java - 如果单例很糟糕,那么如何存储框架的全局状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18156042/

相关文章:

c# - 我怎样才能重构它以使其工作而不严重破坏模式?

java - 如何处理大量查询参数的 if/else 语句(例如过滤器)

java - 构造不可变对象(immutable对象)的抽象生成器

php - 为什么在 CodeIgniter 中不鼓励在数组中传递数据?

c++ - 获取未删除指针的值

javascript - 在 ES6 类中实现数据隐私的另一种方法

java - 识别图片上的 SWT 和 JFace 小部件

java - 系统输出打印速度慢

java - 使用二叉树节点的 while 循环中出现 NullPointerException

java - <Lists> 清空自身