Это правда, иногда синглтоны могут создавать проблемы, которых у вас не будет без них.
Я пытаюсь дать вам список своих мыслей по этому вопросу:
Самое серьезное, что ваше программное обеспечение имеет круговые зависимости.Если вы работаете над архитектурой SOA, это может произойти довольно быстро, если вы не будете осторожны.
Кроме того, одиночные игры часто могут привести к очень тесной связи между вашими классами, что заставляет вас работать кактестер действительно очень сложный.
Если вы работаете над большим проектом и то, как другой класс может получить экземпляр ваших изменений Singleton, вам придется изменить много кода.Это также может происходить без синглетов, но у меня есть ощущение, что это чаще случается с синглетами.
Но иногда синглтон - это хорошая идея, и вам следует придерживаться ее.Даже в AS3 вы можете использовать синглтоны с известным обходным путем конструктора аргументов частного класса.В качестве эвристики, когда не следует использовать синглтоны, я бы посоветовал подумать, нужно ли классу много ссылок на другие синглтоны.И, подумав, вы также можете сделать свои синглеты тестируемыми.