当您的应用程序需要几个(〜5)配置参数,并且该应用程序将被非技术用户(即KISS)使用时,您通常如何处理读取配置选项,然后在对象/函数之间传递参数(多个模块)?
选项示例:输入和输出目录/文件名、详细级别。
我通常使用optparse
(Python)并将选项/参数作为参数传递;但我想知道使用由所有模块的对象直接读取的配置文本文件是否更常见(但是,这不是像拥有“全局”变量吗?并且没有任何人“拥有”状态?) .
另一个典型问题是单元测试;如果我想独立地对每个模块进行单元测试,一个特定的模块可能只需要 5 个配置选项中的 1 个;您通常如何将单个模块/对象与应用程序的其余部分分离,但仍允许它接受 1 或 2 个必需参数(单元测试框架是否以某种方式调用或接管配置功能)?
我的猜测是,没有一种独特的正确方法可以做到这一点,但是阅读各种方法或众所周知的模式会很有趣。