Функция веб-вызова с использованием шаблона MVVM в Swift - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь реализовать шаблон проектирования MVVM с помощью swift, но мне не совсем понятны некоторые вещи, которые упомянуты ниже.

Мне нужно получить список цветов и отобразить его в виде таблицы.Я назову веб-API, который предоставит подробную информацию о различных видах цветов.Поэтому я создал класс Flower (как модель) и класс FlowerViewModel как (ViewModel), и ViewController содержал представление таблицы в нем.

Но не уверен, в какой класс я должен поместить вызов web api и анализ ответа JSON?На данный момент я разместил оба этих элемента в классе FlowerViewModel

. Пожалуйста, предложите, если необходимо внести исправления для размещения этих двух функций, или мое предположение верно.

Спасибо

1 Ответ

0 голосов
/ 09 февраля 2019

Класс Web Service API должен быть отдельным в соответствии с Принципом одиночной ответственности (SRP) , но вызывающий объект или экземпляр этого класса должен находиться в модели представления. ViewModel делегирует службу для вызова Web API, а из ответа parsed получает список цветов, связывающих эти элементы с UITableView.Вот как я реализую в MVVM.

Прояснение:

class FlowerFetcher {
    func getFlowers(callback: ([Flowers])->()) {}
}

class FlowerViewModel {
    private var flowerService: FlowerFetcher?

    init(flowerService: FlowerFetcher?) {}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...