Какая разница между Model-View-Presenter и Model-View-Adapter? - программирование

Какая разница между 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

Адаптер/презентатор "знает о" представлении и модели ", но" Вид "и" Модель "не знают ни о ком другом, кроме себя.

Я ожидаю, что здесь есть тонкость, которую я здесь полностью отсутствует. Что это?

4b9b3361

Ответ 1

Единственное, о чем я могу думать, это MVA, как правило, связано с наличием нескольких адаптеров между представлением и моделью. Хотя вам ничего не мешает сделать это в MVP, я думаю, MVP подразумевает сильную триаду.

Обновление (годы спустя): в ретроспективе я считаю, что ключевым отличием будет контроль потока. В MVP View запускает/создает/вызывает Presenter, который делегирует модель и отвечает на представление. В MVA, когда появляются сообщения, выбирается адаптер, который затем посредничает между моделью и представлением. Поскольку MVP View запускает/создает/вызывает Presenter, выбор между несколькими докладчиками (в качестве адаптера выбран) не является прямой подгонкой.