Можешь объяснить ключевые различия между class и object объявлениями в Kotlin, особенно в отношении создания экземпляров и паттернов singleton? — ДейлиПреп