Шаблон синглтона

Шаблон синглтона
Шаблон синглтона - jamesaldrin @ Unsplash

Возможный дубликат:

Когда уместен синглтон?

Я начинающий программист (4 месяца на моей первой работе) и недавно заинтересовался паттернами проектирования. Один из них, который я недавно использовал, это Singleton. Однако, глядя на некоторые комментарии к этой теме. У него есть несколько плохих отзывов; может ли кто-нибудь объяснить, почему?

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

У него те же проблемы, что и у глобальной переменной.

Это дает вам глобальный доступ к изменяемому состоянию.

Все, что использует Singleton, теперь тесно связано с ним.

Старайтесь избегать тесной связи. Это затрудняет обновление кода. Трудно проверить.

Если ваш выбор — синглтон или глобальная переменная. Чем, по крайней мере, Singleton обеспечивает ленивую инициализацию.

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

Примечание. Глобальный доступ к постоянному состоянию не имеет большого значения.

Вот хороший доклад на эту тему, сделанный инженерами Google:
https://thewikihow.com/video_-FRm3VPhseI

Паттерн Singleton looks кажется одним из самых простых в реализации (когда вы впервые видите шаблоны проектирования). Это относительно легко сделать, но в его реализации есть несколько ошибок (все они зависят от языка). Но самое сложное в изучении Синглтона — это; научиться, когда их использовать (что должно быть редко (большинство людей утверждают, что никогда, но мне трудно убедить себя, что я никогда не смог бы использовать синглтон (думал, что те несколько раз, которые я использовал, в большинстве случаев были ошибки (но это как мы учимся))).


LetsCodeIt, 8 июня 2023 г., 03:56