Структуры и классы являются хорошим выбором для хранения данных и моделирования поведения в ваших приложениях, но их сходство может затруднить выбор одного из другого.
при добавлении нового типа данных в ваше приложение:
- Использовать структуры по умолчанию.
- Использовать классы, когда вам нужна совместимость с Objective-C.
- Использовать классы, когда вам нужно контролировать идентичность данных, которые вы используете. моделирование.
- Используйте структуры вместе с протоколами для принятия поведения путем совместного использования реализаций.
Структуры могут включать в себя хранимые свойства, вычисляемые свойства и методы. Более того, структуры Swift могут принимать протоколы, чтобы получить поведение посредством реализаций по умолчанию. Стандартная библиотека Swift и Foundation используют структуры для часто используемых типов, таких как числа, строки, массивы и словари.
Когда нам нужно использовать Class
Если вы используете Objective-C API, который должен обрабатывать ваши данные, или вам нужно вписать вашу модель данных в существующую иерархию классов, определенную в Objective-C, вам может потребоваться использовать классы и наследование классов для моделированияданные. Например, во многих средах Objective C предоставляются классы, которые, как вы ожидаете, должны быть подклассами.
или когда нам нужно контролировать идентичность, мы используем класс для моделирования данных. классы по-прежнему считаются различными с помощью оператора тождества (===). Это также означает, что когда вы делитесь экземпляром класса со своим приложением, изменения, которые вы вносите в этот экземпляр, видны для каждой части кода, содержащей ссылку на этот экземпляр.
Например, если у вас есть тип, представляющийподключение к локальной базе данных, код, который управляет доступом к этой базе данных, требует полного контроля над состоянием базы данных, как видно из вашего приложения. В этом случае целесообразно использовать класс, но не забудьте ограничить, какие части вашего приложения получают доступ к общему объекту базы данных.
Когда нам нужно использовать Struct
- Используйте структуры при моделировании данных, которые содержат информацию о сущности с идентичностью, которой вы не управляете.
Использование структур и протоколов для наследования модели и совместного использования поведения
Структуры и протоколы могут принимать только протоколы, они не могут наследоваться от классов.
относится Выбор между структурами и классами