Почему GitHub C++ Core Guideline говорит, что глобальный объект лучше, чем синглтон?

Основные принципы Github C++ гласят:

Глобальный объект часто лучше одиночного.

Я всегда думал об обратном. Что-то изменилось с тех пор в C++? Или может это просто очередная опечатка?

1 ответ

Решение

Это обоснование для избежания синглетонов из одной и той же коллекции рекомендаций:

I.3: избегать одиночных игр

причина

Синглтоны - это в основном сложные замаскированные глобальные объекты.

пример

class Singleton {
    // ... lots of stuff to ensure that only one Singleton object is created,
    // that it is initialized properly, etc.
};

Есть много вариантов синглтон-идеи. Это часть проблемы.

Мой анализ намерений автора:

Проще лучше. Если маскировка глобальных объектов в синглетах не решает проблемы глобальных объектов - как следует из приведенного выше руководства - тогда нет смысла усложнять код с помощью маскировки.

Другие вопросы по тегам