Эволюция антипатернов Java/Kotlin. Михаил Горюнов
https://youtu.be/7be-l64jgTc?t=6863
Антипаттерн - способ решения задачи неоптимально.
В синглтоне не должно быть изменяемого состояния.
Это синглтон с ленивой инициализацией, т.к. классы загружаются лениво. Так же он потокобезопасный так как static однопоточный.
В котлине же убрали "муки" выбора и высекли реализацию в камне:
Так показывает гугл и тоже лучше не делать (пример с билд дб):
Но вместо такого синглтона лучше заюзать класс и договорится о способе передачи.
Но это плохо, т.к. в Java такой код скомпилируется, хотя мы забыли Anonymous.