2010-02-08 43 views
5

我正在开发一个使用OpenGL的简单模拟,该模拟具有一些全局常量,在模拟执行期间由用户更改。我想知道Singleton设计模式是否是作为临时执行时间“配置库”工作的最佳方法使用单例存储全局应用程序参数

回答

4

如果你需要保持这些设置真正的“全局”,单身可能是最好的选择。

但是,出于仿真的目的,我会考虑是否可以设计算法来传递对配置实例的引用。这将使得每次模拟存储配置变得更加容易,并且最终允许您在需求改变的情况下同时处理具有单独配置的多个模拟。

通常,试图避免全局状态是一个更好的长期方法。

1

我认为在过去,我已经为此使用了命名空间,而不是单例类,但这应该也可以工作(可能更好)。当然,如果您希望能够在不重新编译的情况下更改配置,您可能希望将所有内容移动到单独的属性文件(或者XML或YAML或CSV或任何您喜欢的),然后在应用程序启动时加载它向上。然后,你需要一个“配置”类来存储所有的值在一个hashmap(或类似的东西)。

相关问题