为什么 GitHub C++ Core Guideline 说全局对象比单例更好?

αλε*_*λυτ 2 c++ singleton global-object

Github C++ 核心指南说:

全局对象通常比单例更好。

我一直认为相反。从那以后在 C++ 中发生了什么变化?或者可能只是另一个错字?

eer*_*ika 6

这是避免来自同一指南集合的单身人士的基本原理:

I.3:避免单身

原因

单例基本上是伪装的复杂全局对象。

例子

class Singleton {
    // ... lots of stuff to ensure that only one Singleton object is created,
    // that it is initialized properly, etc.
};
Run Code Online (Sandbox Code Playgroud)

单例思想有很多变体。这是问题的一部分。

我对作者意图的分析:

越简单越好。如果在单例中伪装全局对象不能解决全局对象的问题——就像上面的指南暗示的那样——那么通过使用伪装来使代码复杂化是没有用的。

  • @alexolut 引用的指南指出单例是伪装的全局对象。我推断这意味着它们不能解决全局对象的问题。它还指出单例比全局对象更复杂。越简单越好。 (3认同)