Иногда мне нужно поместить некоторую часть программы в отдельный символ (класс, пространство имен и т. Д.). Например, я не должен держать все вещи рендеринга в глобальной области, я не должен также держать файловый менеджер в глобальной области видимости. Есть разные случаи, когда я должен это делать. И, вероятно, для разных случаев я должен использовать разные способы разделения: singleton, "статический" класс, пространство имен . Итак, в каких случаях какие способы я должен использовать?