【发布时间】:2019-03-30 19:55:20
【问题描述】:
我正在尝试创建一个库。我的代码中有一些常量,它们是某种不同的时间延迟和代码中的某些字符串值。我可以将它们提取到一个单独的常量类中以获得类似
Delays.LENGTH_SHORT(看起来更干净)
它们链接到库代码中的许多不同类。
现在,手头的问题是使其可配置,从调用消费者(即,如果消费者提供值,则使用这些值,否则使用预设值)。从消费者端,我决定使用 Builder 模式来创建配置并将其传递到库模块的 init 中(这只会在它的生命周期中发生一次)。
有没有办法在保留上述语法的同时接受消费者的配置(这些设置在init 期间只配置一次,在所有其他时间,它完全表现为常量)?
从文件中读取,似乎很昂贵。
【问题讨论】:
-
您的库是否应该支持其他应用程序实现?否则,我建议使用
SharedPreferences来持久保存字符串和持续时间。尽管您也可以使用 /res/values/Strings.xml 来保留您的默认字符串值。 -
该库应该被应用程序用于某些功能。在该消费中,应用程序可以通过这些设置配置
init期间的某些使用行为。这些设置设置一次,然后在库中的许多独立类中使用。SharedPreferences也将类似于文件 R/W。如果设置不同于默认设置(客户端配置),strings.xml将不允许在同一位置进行覆盖,并且需要在所有使用点重新检查。不是这样吗?我错过了什么吗?
标签: java android module configuration