> Как разделить функции для чтения и записи значений (iOS, Swift)
Уровень: senior · Роль: mobile · Категория: Технические вопросы
Компании: Revolut
Стек: iOS, Swift
> Пример ответа
В iOS-разработке на Swift разделение функций чтения и записи значений - это ключевой принцип проектирования, который повышает безопасность, тестируемость и читаемость кода. Основные подходы:
-
Использование геттеров и сеттеров (computed properties):
SWIFTprivate var _value: Int = 0var value: Int {get { return _value }set { _value = newValue }}Это позволяет добавить валидацию или логирование при записи, сохраняя простой доступ для чтения.
-
Разделение через протоколы (рекомендуемый способ):
SWIFTprotocol Readable {var value: Int { get }}protocol Writable {var value: Int { get set }}class MyClass: Readable, Writable {var value: Int = 0}Так вы можете передавать объект только как
Readableв функции, которым не нужна запись, предотвращая случайные изменения. -
Private(set) модификатор (самый лаконичный для iOS):
SWIFTstruct Model {private(set) var value: Int = 0mutating func updateValue(_ new: Int) {// валидацияvalue = new}}Чтение доступно извне, а запись - только внутри структуры через специальный метод.
-
Функциональное разделение (для сложной логики):
- Функция
readValue()возвращает значение. - Функция
writeValue(_ newValue:)изменяет его, возможно, с асинхронной обработкой или блокировками (например, в многопоточных сценариях сDispatchQueue).
- Функция
Выбор зависит от контекста: для простых моделей данных подходит private(set), для публичных API - протоколы, для сложной бизнес-логики - отдельные методы с явными именами.
> Похожие задачи по mobile
Как реализовать функцию setValue для обновления значения по ключу
Как реализовать фильтрацию массива с сохранением уникальных элементов и порядка
Как реализовать проверку на переполнение при конвертации строки в число
Как проверить, что число положительное или отрицательное
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью