加载设置 - 最佳做法

2022-09-02 21:41:52

我正处于我的第一个实际应用程序中,我正在添加用户设置。我正在使用Java并且非常讨厌(并试图保持这种方式),所以这是我的想法:

  1. 加载中的所有内容,并将其全部“向下”传递到所需的对象(数组)main()
  2. 与上面相同,但只需将包含数据的对象向下传递即可
  3. 根据需要在各个类中加载每个单独的设置。

我了解每种方法的一些基本优缺点(即时间与大小),但我正在寻找一些外部输入,以了解他们过去成功使用过哪些实践。


答案 1

有人应该支持所谓的Java标准,即Preferences API...它是JDK6中的最新化身。编辑以添加,由于作者似乎精通XML,这比以前更合适。以为我相信你也可以用属性处理XML juju,如果精神带你去。

SO相关:首选项API与Apache解决方案主首选项类是一个好主意吗?

(嗯,这就是我愿意做的所有站起来的事情。


答案 2

使用 SettingsManager 类或类似的东西来抽象获取所有设置数据。在代码中需要设置的每个点,您都可以查询 SettingsManager 类 - 如下所示:

int timeout = SettingsManager.GetSetting("TimeoutSetting");

然后,您将有关如何获取设置的所有逻辑委托给此单个管理器类,您可以根据需要更改/优化其实现。例如,您可以实现设置管理器以从配置文件,数据库或其他数据存储中提取设置,定期刷新设置,处理检索成本高昂的设置的缓存等。使用这些设置的代码仍然幸福地不知道所有这些实现决策。

为了获得最大的灵活性,您可以使用接口而不是实际的类,并让不同的设置管理器实现接口:您可以根据需要在某个中心点交换它们,而不必更改底层代码。

在.NET中,有一组相当丰富的现有配置类(在System.Configuration中)提供这种东西,并且效果很好。

我不确定Java的等效物,但这是一个很好的模式。