在我正在开发的项目中,我有很多配置设置。
之类的东西这些都是静态final,并且都在与值对应的类中。
我的问题是,将所有这些值移动到单个静态类是否有任何问题?
我的想法是,在测试和推文应用时,它会更容易管理。
答案 0 :(得分:1)
我很确定你没有谈论常数,因为你提到闹钟时间。
在专用类中仅使用静态字段的问题是,如果设备处于内存压力下,则可以对类进行垃圾回收。在这种情况下,当你再次使用它们时,它们就会丢失并重置。
因此,您应该考虑将它们保存在文件或数据库中,具体取决于您要存储的数据量。 SharedPreferences对于少量数据非常有用,否则,请考虑使用数据库。这是一个更具可扩展性的解决方案,对于更大的数据集,访问时间更好。
答案 1 :(得分:1)
以@Snicolas的回答为基础......
您确实应该在代码(文件或数据库)之外保留CONFIGURATION设置。但是,每次需要值时,您都不应该“读取”该配置,这将是低效的。
使用类来管理配置(即AppSettings)是个好主意。使其静态是提供类似单一访问的一种方法。在C#和ASP.NET中,Web应用程序将保证静态类的一个且仅一个实例,因此来自不同用户的多个不相关请求将共享完全相同的静态值。
但是在你的情况下(我看到标签'android')使用Java你最好的选择可能是Singleton方法。我不知道Java中的垃圾收集是如何工作的,但我会说你应该使用单例来确保你的设置只有一个实例。单例确保实例存在(或者如果不存在则创建一个实例),然后将其提供给调用者。
这也可以让您更轻松地支持在应用运行时更改配置值的功能 - 您可以“观察”定期更改设置。
我不是一个Java人,但如果还没有用于处理这个问题的库,我会感到惊讶(不是没有)。
答案 2 :(得分:0)
在Rails世界中,最好实现一个懒惰地加载和缓存配置信息的配置模型类,这些配置信息以序列化形式持久存储在一个简单的两列(密钥和串行数据值)表中(或者不常用) )一个平面文件。然后,配置编辑器就是此模型的View。
这也应该是Android中的一个很好的解决方案。
答案 3 :(得分:0)
另一个想法是将这些常量存储在properties
文件中。并在需要时加载常量。 http://viralpatel.net/blogs/loading-java-properties-files/
答案 4 :(得分:-1)
如果你觉得方便,这是一个很好的做法。