【发布时间】:2013-02-18 01:22:14
【问题描述】:
你好堆栈溢出。
我正在准备明天的 CS 考试,我正在查看我们的教授为我们提供的复习表。其中一点说要知道为什么 Singleton 是比 Global 更好的选择。
我不太确定其中的原因,但我确实记得他说过 Singleton 使用较少的“命名空间污染”。我在 Google 上进行了几次比较 Singleton 和 Global 的搜索,但几乎所有结果都表明两者都是糟糕的选择,哈哈。所以这让我不再困惑了。
如果有人能帮我解决这个问题,将不胜感激。谢谢!
【问题讨论】:
-
单例 是 全局对象。这就像问为什么方法比成员函数更好。
-
嗯,static order initialization fiasco 令人沮丧,但两者都不是很好。
-
啊,found it。
-
我不同意“使用较少的命名空间污染”。当然,对于全局类或单例类,仍然有一个名称。名称可能不同,但仍然是某种可能与另一个名称发生冲突的名称。但如果这是你的导师要求的答案,那就记住它。
-
@ModdedLife 您创建了一个包含一堆值和函数的命名全局对象,而不是一堆函数和值,每个函数和值都有自己的全局可用名称。
标签: c++ namespaces singleton global-object