【发布时间】:2009-06-07 06:15:03
【问题描述】:
我有一些代码正在尝试重写。该代码被设计为“通用”,因为它可以被许多需要不同“工作流程”的不同调用者使用。它是这样的:
string globalA;
int globalB;
bool globalC;
// Lots more globals in various shapes and forms
void TheOneAndOnlyMethod(XmlBasedConfig config) {
// Set all of the globals based on XML configuration
// ...
if (globalA.Length > 0)
// Do something relating to functionality 'a'
}
if (globalB > 0) {
// Do something relating to functionality 'b'
}
if (globalC) {
// You get the idea
}
}
一些调用者将设置 globalA 和 globalB,因此执行相关 if 块中的任何操作。其他呼叫者将有无数其他设置来做他们需要做的任何事情。调用者基本上只是一个带有设置的 XML 文件。
维护/修改此代码是一个大的痛苦。我知道必须有一种更清洁、更简单、更少脑爆的方法来做到这一点!
【问题讨论】:
-
你需要全局变量做什么?
-
全局变量是什么意思,它们从何而来? 'config'这个参数是怎么用的?
-
参数实际上是一个 DOM 对象,代表 XML 配置。全局变量...我不知道为什么它们是全局变量,我很想问原作者。