Есть ли недостатки у шаблона Singleton?[дубликат]
-
23-09-2019 - |
Вопрос
Возможные дубликаты:
Что такого плохого в синглтонах
Проблемы с шаблоном Singleton
Есть ли недостатки у шаблона Singleton?Я слышал, что это был вопрос для собеседования, и я не совсем понял, что имелось в виду.
имхо, дело в использовании и в самой выкройке нет ничего проблемного
Решение
От Википедия:
Некоторые считают это антишаблонсудя о том, что он чрезмерно используется, вводит ненужные ограничения в ситуациях, когда единственный экземпляр класса на самом деле не требуется, и вводит глобальное состояние в заявку.
Лично с тех пор, как я начал использовать Spring для автоматического подключения своего приложения, у меня никогда не было необходимости писать синглтон.
Другие советы
Это очень общий вопрос, он действительно зависит от ваших вариантов использования.Я бы процитировал следующее:
- Вам всегда нужен мьютекс (или синхронизированный блок) для защиты первоначального вызова getInstance(), что в некоторых случаях может быть проблематичным.
- Это способ скрыть тот факт, что вы создаете глобальную переменную, а глобальные переменные в целом плохой.Однако во многих случаях простота, которую они приносят, заметна, но будьте осторожны, чтобы не злоупотреблять ими.
- Не поддается тестированию или, по крайней мере, это сложно
- Трудно найти зависимые классы
- Не позволяет создавать подклассы
- ...