Уместно ли использовать одноэлементный класс для отслеживания информации о пользователе?

Я работаю над приложением IOS, которое требует, чтобы пользователь входил в систему. У него есть контроллер главного представления, который проверяет, был ли пользователь уже зарегистрирован. Если нет, он переходит к другому контроллеру представления, который отображает приглашение входа в систему. Когда пользователь входит в систему, контроллер главного представления отклоняет представление журнала и отображает информацию, соответствующую зарегистрированному пользователю.

Приложение также сохраняет учетные данные пользователя в настройках. Если эта информация присутствует, приложение пытается войти в систему с сохраненными учетными данными. Если это удается, контроллер Master View загружает информацию, соответствующую пользователю. Если нет, он переходит к контроллеру журнала.

Я закончил дублирование кода в контроллерах Master View и Log View, которые проверяют идентификатор пользователя и пароль. Затем мне нужно передать экземпляр пользователя в методе prepareforsegue для любого последующего представления.

Должен ли я реализовывать одноэлементный класс для отслеживания зарегистрированного пользователя? Это заманчиво, потому что похоже, что это может сэкономить много работы. Было бы лучше делегировать метод входа пользователя в систему, который я использую в контроллере Log In View, в контроллер главного представления и передать экземпляр пользователя в prepareforsegue каждый раз, когда я нажимаю новый контроллер представления?

Должен ли я реализовывать одноэлементный класс для отслеживания зарегистрированного пользователя?

Вы можете это сделать. Тем не менее, вы также можете создать вспомогательный класс без состояния, который читает учетные данные из хранилища резервных копий по мере необходимости, избегая необходимости создания синглета.

Я закончил дублирование кода в контроллерах Master View и Log View View

Подход помощника без состояния (т.е. класс с только методами класса (+) в нем) предотвратит дублирование кода: код, который вы закончили дублированием, перейдет в общий вспомогательный класс.

Приложение также сохраняет учетные данные пользователя в настройках.

Если незашифрованный пароль является частью учетных данных пользователя, это не безопасное решение. Для сохранения учетных данных в защищенном хранилище следует использовать службы keychain .

  • ios 10+, Swift 3+ - Не удается отменить UIAlertController из экземпляра Singleton
  • CoreData Stack Vs UIManagedDocument для приложений iCloud
  • Возможности экземпляра Singleton автоматически освобождаются
  • Синглтон и Делегация
  • Почему Apple рекомендует использовать dispatch_once для реализации одноэлементного шаблона в ARC?
  • Использование singleton для создания базового класса вспомогательного класса
  • Блокировка FMDatabase, лучшая практика для использования в классе
  • Как создать singleton с параметром в swift:
  • iOS Swift: тип сообщения «DataBase» получателя, например, представляет собой декларацию о переходе для кода Objective C
  • Синонимы и протоколы какао
  • Саморазрушающийся дизайн одноэлементной схемы iOS
  • Давайте будем гением компьютера.