При проектировании состояния в Swift выбор между
enum и struct (или их сочетанием) может существенно повлиять на структуру кода и его гибкость.📖 Дэниел Сайди попытался разобрать преимущества разных подходов.
Основываясь на это материале Дэниел рекомендует выбирать
enums, если:- Есть конечный набор состояний.
- Нужна исчерпывающая проверка во время компиляции.
- Состояния взаимоисключающие.
- Необходимо сопоставление паттерна со связанными значениями.
А структуры стоит выбирать в следующих случаях:
- Нужна расширяемость для кейсов в будущем.
- При реализации системы конфигурации или стилизации.
- Нужно реализовать нестандартные опции.
- Необходимо хранить сложное состояние с несколькими свойствами.
Кстати, в канале есть отличный разбор примера с enum:
📖 Swift Enums 🤝 Дизайн-системы
😃 iOS Dev
