На SO уже есть много вопросов об альтернативах глобальным переменным.Я надеюсь, что этот вопрос достаточно специфичен для сценария, чтобы получить ответ.
Я (неправильно) полагаюсь на более 10 глобальных переменных, которые после перехода к новому ViewController или обработчику завершения RestAPI используются для разграничения поведения.
Пример:
var comingFromRegister: Bool = false
var comingFromMenuToUpdateAddress: Bool = false
var comingFromCancelOrderFromOrdersVC: Bool = false
Мне любопытно, как лучше всего отойти от глобальных переменных.Я могу создать одноэлементный класс с именем ComingFrom для обработки таких сценариев, как:
final class ComingFrom {
static let shared = ComingFrom()
var register: Bool = false
var menuToUpdateAddress: Bool = false
var cancelOrderFromOrdersVC: Bool = false
private init() {}
}
Поскольку существует много недостатков в использовании одиночных ключей, что является лучшим подходом для этих сценариев?