Ответ
Singleton — это порождающий паттерн, гарантирующий, что у класса есть только один экземпляр, и предоставляющий глобальную точку доступа к нему. В Go реализуется через sync.Once для потокобезопасности.
package main
import (
"sync"
)
type Singleton struct {
value string
}
var (
instance *Singleton
once sync.Once
)
func GetInstance() *Singleton {
once.Do(func() {
instance = &Singleton{value: "initial value"}
})
return instance
}
Особенности:
- Гарантирует единственность экземпляра
- Ленивая инициализация (создание при первом вызове)
- Потокобезопасность через
sync.Once - Используется для логгеров, конфигов, подключений к БД
Видео-ответы
▶
Собеседование в МТС: Middle Java с лайв-кодингом
▶
Джун был тимлидом, разрабатывал телеграм ботов и стал миддлом? / Техсобес Middle Python Developer
▶
iOS Мок Интервью Middle разработчика - Федор
▶
Собеседование Middle Python Developer на $2000 #6
▶
iOS Мок Интервью Junior разработчика - Анастасия
▶
Собеседование Trainee Python Developer
▶
Собеседование подписчика Trainee Python Developer
▶
Собеседование Junior Python Developer
▶
PYTHON JUNIOR интервью со SpaciX
▶
Собеседование Trainee Python Developer
▶
Собеседование: Swift (iOS-разработка) / Вопросы и ответы
▶
FRONT-END РАЗРАБОТЧИК: Как пройти СОБЕСЕДОВАНИЕ?
▶
Публичное собеседование iOS-разработчика | Петя Коренев и Андрей Галушка