如果单例被认为对全局状态不利,尤其是会影响代码主要执行的状态,那么应该如何处理 Web 框架的全局状态?
立即想到的事情是:
- 基本网址
- 基本文件路径
- 一般配置
- 记录实例
- ETC
除了单例之外,我看不到任何其他方式来访问这些,例如 App() 类或类似的?
如果单例被认为对全局状态不利,尤其是会影响代码主要执行的状态,那么应该如何处理 Web 框架的全局状态?
立即想到的事情是:
除了单例之外,我看不到任何其他方式来访问这些,例如 App() 类或类似的?
将此数据加载到您的应用程序已经全局的位置。例如,在 Web 应用程序中,您可以将此数据存储在应用程序范围内,即ServletContext
使用ServletContextListener
.
此外,您可以使用已经处理每个特定上下文(如 Spring)的全局状态的框架。
顺便说一句,像Logging 实例(即Logger logger
)这样的情况并不存储在单例实例中,而是在每个类中,标记为static final
。
有关单例模式使用的长期无休止讨论的更多信息: