Дизайн шаблона для iOS JSON - PullRequest
       2

Дизайн шаблона для iOS JSON

0 голосов
/ 01 октября 2019

Я собираюсь создать приложение для iOS в Swift, которое взаимодействует с этим API, и я хотел бы получить ваши советы по шаблону проектирования перед сборкой. Я действительно пытаюсь научиться создавать чистый, лучший в своем классе дизайн MCV, поэтому любые советы приветствуются.

Я написал REST API, который разрешает операции CRUD через HTTP на множестве ресурсов, позволяет называть их «элементами». Элементы имеют несколько свойств, таких как «имя», «тип» и т. Д. Существуют некоторые отношения (например, «элементы» назначаются «пользователям»). Данные представлены в формате JSON.

Одна из ключевых вещей, с которыми я борюсь, - где разместить логику для загрузки и анализа JSON. Вы помещаете это в ViewController? Или создать отдельный класс контроллеров? Я хочу повторно использовать код JSON для нескольких ресурсов (например, «items» и «users»). И действительно ли мне нужен ItemManager и ItemViewController?

Мое текущее мышление:

  • (M) Item - Декодируемая структура JSON, которая следует точной структуре ресурса в API
  • (M) Пользователь - idem
  • (C) JSONController - класс, который получает URL-адрес и ожидаемый тип класса, а также отправляет и получает ответ и возвращает экземпляры этого класса
  • (C) ItemManager - класс, который будет отслеживать все элементы (инициируя несколько экземпляров классов Item) и использовать контроллер JSON для обновления при необходимости
  • (C) UserManager - idem
  • (C) ItemViewController - извлекает элементы из ItemManager и подготавливает их для контроллера представления;также координирует действия кнопок и т. д.
  • (C) UserViewController - idem
  • (V) ItemView - представление, отображающее элементы в виде таблицы
  • (V) UserView - idem

С уважением, Скотт

1 Ответ

0 голосов
/ 03 октября 2019

То, что вы делаете правильно, работа в сети должна осуществляться с контроллеров. Однако хорошо держать его отдельно от контроллеров представления, что, по-видимому, является тем, что вы делаете с вашим классом JSONController. Здесь - интересная статья о парадигме «MVC-N», которая в основном и состоит в том, что вы делаете: отделяете сетевые компоненты от контроллеров представления.

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