Как создать чистый слой презентации в приложении для iOS
Я делаю приложение с DDD. Я могу создать чистый слой домена, домены которого четко отделены от других слоев.
Но контроллеры на уровне презентаций - беспорядок.
ViewControllers имеют несколько обязанностей, даже если домен успешно разделен. ViewController, как правило, имеют несколько обязанностей, таких как
- навигация
- Deleate
- аналитика
- Анимация
- Доступ к нескольким доменам и т. Д.
Часто существует много контроллеров ViewController с немного различными функциями.
Если попытаться сделать это с помощью шаблонного метода, иерархия ViewControllers будет слишком сложной.
Если вы попытаетесь сделать это без шаблонного метода, будет много ViewControllers, которые разделяют некоторые функции. Этот способ уязвим к изменениям.
Каковы некоторые лучшие практики? Как построить чистый слой презентации в приложении для iOS?
1 ответ
На практике, Cocoa MVC часто приводит к проблеме с контроллером массивного представления. Решение состоит в том, чтобы перейти к более мелкозернистой архитектуре, такой как MVP или VIPER.
В MVP на iOS представление представлено UIViewController
(или голый UIView
), таким образом UIViewController
больше не загружен бизнес-логикой.
VIPER имеет еще больше слоев, а также решает задачу пользовательского интерфейса.