
Static свойства
🟢 lvl: jun+
static свойствами называют свойства и методы, принадлежащие типу, а не экземплярам типа.
Инициализация static пропертей (а также глобальных переменных) происходит лениво, при первом обращении, инициализация гарантированно произойдет только один раз даже при паралельном обращении с нескольких потоков.
Когда мы должны использовать static свойства и методы?
🟣 Использование статических свойств для конфигурации
Самый частый кейс — использовать свойства, единственной целью которых является настройка других объектов (см скрин 1).
Так удобно юзать настройки цветов и шрифтов в одном месте, а использование enum не требует конструктора
⚪ Использование статических свойств для дорогих объектов
Юзать как кеш. Создание некоторых объектов может быть дорогим. Такие объекты можно сохранить в статическом объекте (см скрин 2)
Создание фабрики со статическими методами
🔵 Использование для синглтонов
Каждый из перечисленных имеет статическое свойство, которое содержит экземпляр по-умолчанию. URLSession.shared, UserDefaults.standard, NotificationCenter.default, DispatchQueue.main.
Основное преимущество таких определений — это потокобезопасность и гарантия того, что 2 URLSession не выполнят одновременно один запрос.
- Эффективно используем статические свойства
- Swift Properties
🟢 lvl: jun+
static свойствами называют свойства и методы, принадлежащие типу, а не экземплярам типа.
Инициализация static пропертей (а также глобальных переменных) происходит лениво, при первом обращении, инициализация гарантированно произойдет только один раз даже при паралельном обращении с нескольких потоков.
Когда мы должны использовать static свойства и методы?
🟣 Использование статических свойств для конфигурации
Самый частый кейс — использовать свойства, единственной целью которых является настройка других объектов (см скрин 1).
Так удобно юзать настройки цветов и шрифтов в одном месте, а использование enum не требует конструктора
⚪ Использование статических свойств для дорогих объектов
Юзать как кеш. Создание некоторых объектов может быть дорогим. Такие объекты можно сохранить в статическом объекте (см скрин 2)
Создание фабрики со статическими методами
🔵 Использование для синглтонов
Каждый из перечисленных имеет статическое свойство, которое содержит экземпляр по-умолчанию. URLSession.shared, UserDefaults.standard, NotificationCenter.default, DispatchQueue.main.
Основное преимущество таких определений — это потокобезопасность и гарантия того, что 2 URLSession не выполнят одновременно один запрос.
- Эффективно используем статические свойства
- Swift Properties