我正在使用OpenGL开发一个简单的模拟,这个模拟有一些全局常量,在模拟执行期间由用户更改。我想知道Singleton设计模式是否是作为临时执行时间的最佳方式,“配置库”
答案 0 :(得分:4)
如果您需要将这些设置保持为“全局”,单身人士可能是最佳选择。
但是,出于模拟目的,我会考虑是否可以将算法设计为传递对配置实例的引用。这样可以更容易地为每个模拟存储配置,并最终允许您在需求发生变化的情况下同时处理具有单独配置的多个模拟。
通常,试图避免全球状态是一种更好的长期方法。
答案 1 :(得分:1)
我认为过去我为此目的使用了命名空间,而不是单例类,但这也应该有用(可能更好)。
当然,如果您希望能够在不重新编译的情况下更改配置,您可能希望将所有内容移动到单独的属性文件(或XML或YAML或CSV或您喜欢的任何内容),然后在应用程序启动时加载它。然后你需要一个“config”类来将所有值存储在一个hashmap(或类似的东西)中。