Миграция MVC в MVVM в Swift - PullRequest
       12

Миграция MVC в MVVM в Swift

0 голосов
/ 09 июля 2019

Рабочий образец доступен по адресу: https://gitlab.com/nipunrd_git/mvvmarch

Я в процессе миграции приложения из MVC в MVVM.Насколько я прочитал, вам нужно сделать свой viewController независимым от Model, сделав viewModel, чтобы склеить модель и контроллер.

Если мы рассмотрим простой screenA, который имеет кнопку обновления, чтобы получить некоторые данные через веб-сервис и затем заполнить данные в представлении:

  1. ScreenAViewController.swift: будет содержать код для доступа к веб-службе черезкласс помощника одноэлементной сети.

    ScreenA -> NetworkHandler -> fetchData

  2. Чтобы сделать ScreenA, использовать извлеченные данные, теперь мы должны сделать ViewModel, поэтому я сделалScreenAViewModel.Допустим, наша модель была названа «Дизайн»:

struct Design{ var pattern: String }

Теперь наша ViewModel будет выглядеть так:

class ScreenAViewModel{
 private let design: Design
 public let pattern: String

init (design: Design, pattern: String){
   self.design = design
   self.pattern = design.pattern
  }
}
Когда мы получаем данные из веб-службы, мы должны сначала создать Design модель, а затем инициализировать нашу ViewModel с этим.Эта ViewModel теперь будет использоваться нашим контроллером представления для получения и отображения данных.Любая бизнес-логика будет написана только в этом.

Есть ли способ сдвинуть # 3 к самой модели вида?Я думаю, что преобразование модели в viewModel в самом контроллере превосходит цель скрытия модели от контроллера.

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