Back to questions
Junior — Middle
63
Каким образом реализовать паттерн Singleton в языке Kotlin и какие особенности при этом необходимо учитывать?
Answer from AI
sobes.tech AI
В Kotlin паттерн Singleton реализуется очень просто с помощью ключевого слова object. Это объявление создаёт класс с единственным экземпляром, который инициализируется лениво и потокобезопасно по умолчанию.
Пример реализации Singleton:
object Database {
fun query(sql: String) {
println("Выполняется запрос: $sql")
}
}
// Использование
Database.query("SELECT * FROM users")
Особенности:
- Не нужно писать код для контроля создания экземпляра — всё сделано автоматически.
- Инициализация потокобезопасна без дополнительного синхронизирования.
- Можно реализовать интерфейсы и наследовать от классов.
- Если нужен ленивый Singleton с параметрами,
objectне подходит, тогда используют другие подходы (например,by lazy).
Таким образом, в Kotlin Singleton — это просто и безопасно благодаря встроенной поддержке object.