配置文件的使用是否等同于使用全局变量?

时间:2008-11-10 18:41:31

标签: language-agnostic coding-style

我已多次阅读并同意避免使用全局变量来保持代码正交。是否使用配置文件来保存程序使用的只读信息类似于使用Globals?

6 个答案:

答案 0 :(得分:3)

如果您使用配置文件代替全局变量,那么是的,它们是相似的。

配置文件只应在最终用户(可能是精通计算机的用户,如开发人员)需要为应用程序或代码片段声明设置的情况下使用,同时保持他们的代理本身。

答案 1 :(得分:3)

我的第一反应是它不一样。我认为全局变量的问题是读+写场景。配置文件是只读的(至少在执行方面)。 以同样的方式,常量不被认为是糟糕的编程行为。配置文件,至少在我使用它们的方式,只是易于改变的常量。

答案 2 :(得分:3)

好吧,因为配置文件和全局变量都可以在整个系统中传播变化 - 它们大致相似。

但是......在配置文件的情况下,更改通常会发生在单个,高度可见(对开发人员)位置,并且全局变量会影响变化,非常偷偷摸摸且难以追踪方式 - 所以这两种概念并不相似。

配置文件通常有助于DRY concepts,它也不会伤害系统的orthogonality

使用25美元单词'orthogonal'的奖励积分。我不得不在维基百科看一下,找出非欧几里德的定义。

答案 3 :(得分:0)

最终用户可以轻松编辑配置文件,作为告诉程序如何运行的一种方式。

一种更专业的配置文件形式,用户首选项,用于记住程序执行之间的事情。

答案 4 :(得分:0)

Global与一个永远不会改变的对象的唯一实例相关,而config文件则用作参考值的容器,用于应用程序中可以更改的对象。

一个“全局”对象在运行时永远不会改变,另一个对象通过配置文件初始化,但可以在以后更改。

实际上,这些对象不仅可以在应用程序的生命周期内进行更改,还可以监视配置文件以实现“热更改”(在不停止/重新启动应用程序的情况下修改其值),如果配置文件已被修改。

答案 5 :(得分:0)

它们绝对不是彼此相同或替代品。配置文件或对象可以非全局使用,即明确传递。

你当然可以有一个引用配置对象的全局变量,这会破坏目的。