Как четко разделить пользовательский интерфейс и бизнес-логику в проекте iOS / Swift - PullRequest
0 голосов
/ 15 декабря 2018

Я относительно новичок в разработке под iOS, но имею значительный опыт работы с Android / Java / Kotlin.Поэтому я склонен структурировать свои проекты IOS немного похожи на мои проекты Android.Итак, базовая структура, которую я использую, -

class MyViewController: UIViewController{
  private let viewModel = ViewModel()
} 

class ViewModel{
  func doSomethingAsync(delegate){
    SomeFactory.createService().doSomethingAsync(){
      delegate.callback
    }
  }
}

class SomeFactory{
  static func createService() -> Service {return ServiceImpl()}
}

class Service{
  func doSomething()
}

class ServiceImpl : Service{
  func doSomething(){... implementation...}
}

. Таким образом, контроллер представления ничего не знает о бизнес-логике или сервисах, и все, что он видит, - это модели данных.Модель представления обеспечивает соединение между ними.Кроме того, никто не может видеть класс ServiceImpl и доступен только через фабрику.Является ли этот дизайн чрезмерным или это слишком "javaish" для IOS?Как люди обычно разделяют свою логику представления с помощью служебной / бизнес-логики приложения?

1 Ответ

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

В viewController Обновите элементы пользовательского интерфейса.

Без обновления элементов пользовательского интерфейса все (бизнес-логика) обязательно перейдет на viewModel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...