Альтернативы глобальным переменным / синглетонам для изменения поведения при переходе из разных ViewControllers в iOS. - PullRequest
0 голосов
/ 03 декабря 2018

На 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() {}
}

Поскольку существует много недостатков в использовании одиночных ключей, что является лучшим подходом для этих сценариев?

1 Ответ

0 голосов
/ 03 декабря 2018

Это зависит от вашей архитектуры.В вашем случае, кажется, enum лучше.

...