Я конвертирую неструктурированный устаревший код (приложение C ++ Windows с использованием MF C), чтобы использовать шаблон Model View Presenter, чтобы я мог писать модульные тесты.
Диалог, который я конвертирую в MVP сохраняет / загружает набор данных между файлом на диске и устройством, подключенным к последовательному порту. Кто отвечает за взаимодействие с I / O, Presenter или Model?
Предположим, я создал интерфейсы для файловой системы и уровня последовательной связи, чтобы я мог использовать для них тестовые макеты. Однако последовательная связь в приложении - это не простой ответ на вызов, это асинхронная машина Rube Goldberg, включающая рабочие потоки и Windows сообщений.
Какой из следующих способов является более правильным способом распределения ответственности?
- Строгий уровень, Активная модель: Presenter вызывает модель, Модель взаимодействует с уровнем последовательной связи
- Presenter - это концентратор, Пассивная модель: Модель действует только на, Presenter опосредует ввод / вывод