Какая разница между Model-View-Presenter и Model-View-Adapter?
Я пытаюсь понять, есть ли разница между шаблонами Model-View-Presenter и Model-View-Adapter, и, если да, какая разница. Я не нашел никаких онлайн-ресурсов, которые сравнивают/контрастируют их, поэтому я даже не уверен, действительно ли они различны.
Описания, которые я нашел из них, звучат в основном идентично мне. Из того, что я собрал, в обоих случаях поток управления в основном:
View <-- Adapter/Presenter --> Model
(where Adapter/Presenter can also respond to events from View and Model)
View: the UI
Adapter/Presenter: main logic; mediator between the UI and the data model
Model: the data model
Адаптер/презентатор "знает о" представлении и модели ", но" Вид "и" Модель "не знают ни о ком другом, кроме себя.
Я ожидаю, что здесь есть тонкость, которую я здесь полностью отсутствует. Что это?
Ответы
Ответ 1
Единственное, о чем я могу думать, это MVA, как правило, связано с наличием нескольких адаптеров между представлением и моделью. Хотя вам ничего не мешает сделать это в MVP, я думаю, MVP подразумевает сильную триаду.
Обновление (годы спустя): в ретроспективе я считаю, что ключевым отличием будет контроль потока. В MVP View запускает/создает/вызывает Presenter, который делегирует модель и отвечает на представление. В MVA, когда появляются сообщения, выбирается адаптер, который затем посредничает между моделью и представлением. Поскольку MVP View запускает/создает/вызывает Presenter, выбор между несколькими докладчиками (в качестве адаптера выбран) не является прямой подгонкой.