Как создать чистый слой презентации в приложении для iOS

Я делаю приложение с DDD. Я могу создать чистый слой домена, домены которого четко отделены от других слоев.

Но контроллеры на уровне презентаций - беспорядок.

ViewControllers имеют несколько обязанностей, даже если домен успешно разделен. ViewController, как правило, имеют несколько обязанностей, таких как

  • навигация
  • Deleate
  • аналитика
  • Анимация
  • Доступ к нескольким доменам и т. Д.

Часто существует много контроллеров ViewController с немного различными функциями.

Если попытаться сделать это с помощью шаблонного метода, иерархия ViewControllers будет слишком сложной.

Если вы попытаетесь сделать это без шаблонного метода, будет много ViewControllers, которые разделяют некоторые функции. Этот способ уязвим к изменениям.

Каковы некоторые лучшие практики? Как построить чистый слой презентации в приложении для iOS?

1 ответ

Решение

На практике, Cocoa MVC часто приводит к проблеме с контроллером массивного представления. Решение состоит в том, чтобы перейти к более мелкозернистой архитектуре, такой как MVP или VIPER.

В MVP на iOS представление представлено UIViewController (или голый UIView), таким образом UIViewController больше не загружен бизнес-логикой.

MVP

VIPER имеет еще больше слоев, а также решает задачу пользовательского интерфейса.

VIPER

Другие вопросы по тегам