Паттерн проектирования Singleton гарантирует, что класс имеет только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.
Плюсы:
Минусы:
Реализации в Golang:
Конкурентно-безопасная реализация с использованием sync.Once:
go
Эта реализация гарантирует, что инициализация (создание экземпляра) произойдет только один раз, даже при параллельных вызовах GetInstance. sync.Once — наиболее предпочтительный способ реализации Singleton в Golang.