Есть ли недостатки у шаблона Singleton?[дубликат]

StackOverflow https://stackoverflow.com/questions/2343721

  •  23-09-2019
  •  | 
  •  

Вопрос

Возможные дубликаты:
Что такого плохого в синглтонах
Проблемы с шаблоном Singleton

Есть ли недостатки у шаблона Singleton?Я слышал, что это был вопрос для собеседования, и я не совсем понял, что имелось в виду.

имхо, дело в использовании и в самой выкройке нет ничего проблемного

Это было полезно?

Решение

От Википедия:

Некоторые считают это антишаблонсудя о том, что он чрезмерно используется, вводит ненужные ограничения в ситуациях, когда единственный экземпляр класса на самом деле не требуется, и вводит глобальное состояние в заявку.

Лично с тех пор, как я начал использовать Spring для автоматического подключения своего приложения, у меня никогда не было необходимости писать синглтон.

Другие советы

Это очень общий вопрос, он действительно зависит от ваших вариантов использования.Я бы процитировал следующее:

  • Вам всегда нужен мьютекс (или синхронизированный блок) для защиты первоначального вызова getInstance(), что в некоторых случаях может быть проблематичным.
  • Это способ скрыть тот факт, что вы создаете глобальную переменную, а глобальные переменные в целом плохой.Однако во многих случаях простота, которую они приносят, заметна, но будьте осторожны, чтобы не злоупотреблять ими.
  1. Не поддается тестированию или, по крайней мере, это сложно
  2. Трудно найти зависимые классы
  3. Не позволяет создавать подклассы
  4. ...
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top