Sobes.tech
Back to questions
Junior — Middle
77

Чем отличается объявление объекта как отдельного экземпляра от использования объекта-компаньона внутри класса?

Companies where asked
Т-БанкТ-Банк

Answer from AI

sobes.tech AI

В языке Swift объект-компаньон реализуется через ключевое слово static или class внутри класса, что позволяет создавать свойства и методы, связанные с самим классом, а не с его экземплярами. Это аналог паттерна "Singleton" или статических членов в других языках.

  • Отдельный экземпляр объекта — это конкретный объект, созданный с помощью инициализации класса. Каждый экземпляр имеет своё состояние и поведение.

  • Объект-компаньон (статический объект) — это часть класса, общая для всех экземпляров, не требует создания объекта для доступа.

Пример:

class MyClass {
    static let companion = MyClass()
    var value: Int = 0
}

// Использование
MyClass.companion.value = 10

let instance = MyClass()
instance.value = 5

Здесь companion — статический объект-компаньон, доступный без создания экземпляра класса, а instance — отдельный экземпляр с собственным состоянием.