Это правда, иногда синглоты могут создавать проблемы, которые у вас не будут без них.
Я стараюсь, чтобы дать вам список моих мыслей по этому поводу:
Самый тяжелым было бы, что ваше программное обеспечение имеет циклические зависимости. Если вы работаете над архитектурой SOA, это может произойти довольно быстро, если вы не будете осторожны.
Также синглеты могут часто приводить к очень тесной связи ваших классов, что делает работу в качестве тестера действительно очень сложной.
Если вы работаете над большим проектом и как другой класс может получить экземпляр ваших изменений Singleton, вам придется изменить много кода. Это может произойти и без одиночек, но у меня есть ощущение, что это происходит чаще с одиночками.
Но иногда синглтон - хорошая идея, и вы должны придерживаться ее. Даже в AS3 вы можете использовать синглтоны со знаменитым механизмом конструктора аргументов частного класса. Как эвристика, когда не использовать синглтоны, я бы предложил подумать, если класс нуждается в большом количестве ссылок на другие синглтоны. И с некоторыми соображениями вы также можете сделать ваши сингллеты пригодными для тестирования.
«Я хотел бы задать основной вопрос о глобальных значениях. Какой смысл в них? Что не так с созданием нового экземпляра класса, когда вам это нужно?» Я думаю, что я не понимаю ваш вопрос. Нет ничего плохого в создании нового экземпляра класса, когда вам это нужно ... – iuiz
Позвольте мне пояснить, указав пример: с приложением, использующим ведение журнала в каждом отдельном классе, не является ли плохая идея создать экземпляр log class каждый раз, в отличие от использования singleton, который обращается к тому же экземпляру класса ведения журнала? Предположительно, это будет использовать больше памяти? Я чувствую, что у меня есть кое-какие знания, но мне не хватает оснований! @iuiz –