TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #3630 2.98K
Синглтоны и как их использовать

В этой статье автор выражает свою негодование по отношению к использованию синглтонов в программировании и обсуждает их недостатки. Вот основные моменты:

✅Синглтоны как глобальное состояние: Синглтоны, по мнению автора, представляют собой глобальные переменные, что делает их использование проблематичным из-за статической природы. Изменение синглтона может затронуть всю систему, что делает отладку сложной.

✅Скрытые зависимости: Синглтоны создают скрытые зависимости, так как не всегда ясно, что синглтон используется внутри класса или метода. Это усложняет понимание кода.

✅Сложности в тестировании: Использование синглтонов усложняет тестирование, так как создается жесткая зависимость от класса, который не может быть легко заменен на мок-объект в тестах.

Автор предлагает альтернативу синглтонам, основанную на принципе Dependency Injection (внедрение зависимостей) и использовании интерфейсов. Это позволяет избежать скрытых зависимостей, упрощает тестирование и делает код более понятным.

Он также отмечает, что синглтоны могут быть оправданы в случаях, когда они являются неизменными или не влияют на поведение системы при их удалении. Примерами таких синглтонов являются логгеры или сервис-локаторы.
Ramblings about code Singletons and how to use them - Ramblings about code I believe it’s customary for every coding blog to have a rant about singletons, and this one is no different. It is called coderambling after all. I’m not here to tell you how to live your life, if you want to use singletons feel free to do so. But I also…
  • ❤ 5
  • 👍 2
More from @phpproglib
  1. Oct 10, 2026Post #6729
  2. Oct 10, 2026Перенос MiniJinja с Rust на Go силами Opus и Codex Около десяти часов работы агента и прим…
  3. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  4. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  5. Sep 30, 2026🐸 Библиотека пхпшника
  6. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →