Образцовый предъявитель представления (MVP), Какова модель?

Я просто, может казаться, не получаю голову вокруг того, что точно является МОДЕЛЬЮ в MVP.

Если у меня есть ПРЕЗЕНТАЦИЯ многоуровневой архитектуры / ПРИЛОЖЕНИЕ / ДОМЕН / ИНФРАСТРУКТУРА, какова точно МОДЕЛЬ?

  1. К объектам области получают доступ через нижние уровни?
  2. Отдельный объект определил на УРОВНЕ ПРЕДСТАВЛЕНИЯ, который отображается на UI и использует данные, полученные из нижнего уровня?

Если кто-то мог бы очистить мое понимание того, что является МОДЕЛЬЮ, это значительно ценилось бы.

7
задан APC 15 December 2009 в 13:58
поделиться

4 ответа

Модель обычно представляет собой группу классов / типов / компонентов, которые представляют основной домен (бизнес или другой), в котором работает ваше приложение. Это классы, которые выполняют необходимую ключевую логику, часто в форме бизнес-правил, а также потребляют / манипулируют данными.

В вашем многоуровневом примере Модель в основном находится на уровне домена, но также может находиться в Уровень приложения.

Я думаю, вам трудно это понять, потому что вы пытаетесь объединить два отдельных архитектурных шаблона или способы взглянуть на приложение, являясь n-уровневым / n-уровневым по сравнению с MVP.

Совершенно разумно (и довольно часто) использовать какой-то подход «Модель / Представление», одновременно применяя многоуровневую структуру в вашем приложении.

Может быть, вам стоит сначала сосредоточиться на них по одному, а затем наложить их, когда вы будете более знакомы с обоими.

В вашем многоуровневом примере Модель в основном находится на уровне домена, но может также находиться на уровне приложения.

Я думаю, вам трудно понять это, потому что вы пытаетесь объединить два отдельных архитектурных шаблона, или способы взглянуть на приложение, будучи n-уровневым / n-уровневым по сравнению с MVP.

Совершенно разумно (и довольно часто) использовать какой-то подход «Модель / Представление», одновременно применяя многоуровневую структуру в вашем приложении.

Может быть, вам стоит сначала сосредоточиться на них по одному, а затем наложить их, когда вы будете более знакомы с обоими.

В вашем многоуровневом примере Модель в основном находится на уровне домена, но может также находиться на уровне приложения.

Я думаю, вам трудно понять это, потому что вы пытаетесь объединить два отдельных архитектурных шаблона, или способы взглянуть на приложение, будучи n-уровневым / n-уровневым по сравнению с MVP.

Совершенно разумно (и довольно часто) использовать какой-то подход «Модель / Представление», одновременно применяя многоуровневую структуру в вашем приложении.

Может быть, вам стоит сначала сосредоточиться на них по очереди, а затем наложить их, когда вы будете более знакомы с обоими.

Вам трудно понять это, потому что вы пытаетесь объединить два отдельных архитектурных шаблона или способы взглянуть на приложение, являясь n-уровневым / n-уровневым по сравнению с MVP.

Вполне разумно (и довольно часто) использовать какой-то подход «Модель / Представление», одновременно применяя многоуровневую структуру в вашем приложении.

Может быть, вам стоит сначала сосредоточиться на них по очереди, а затем наложить их, когда вы будете более знакомы с обоими.

Вам трудно понять это, потому что вы пытаетесь объединить два отдельных архитектурных шаблона или способы взглянуть на приложение, являясь n-уровневым / n-уровневым по сравнению с MVP.

Вполне разумно (и довольно часто) использовать какой-то подход «Модель / Представление», одновременно применяя многоуровневую структуру в вашем приложении.

Может быть, вам стоит сначала сосредоточиться на них по очереди, а затем наложить их, когда вы будете более знакомы с обоими.

7
ответ дан 6 December 2019 в 12:51
поделиться

Неважно, каким архитектурным принципам вы следуете, M всегда будет одним и тем же. Модель - это часть, специфичная для вашего домена. Это то, что на самом деле пытается сделать ваше приложение. Модель должна представлять сферу вашего бизнеса. Это касается MVP, MVC, MVVM и т. Д.

Если вы создавали систему инвентаризации, то класс Inventory, скорее всего, был бы в вашей модели, продукт, вероятно, был бы там, заказ, вы поняли. Это то, что составляет логику вашего домена.

3
ответ дан 6 December 2019 в 12:51
поделиться

Модель - это данные. Это могут быть просто данные из базы данных в DataSets или полная модель предметной области с объектами, представляющими вашу сферу бизнеса.

Представление - это пользовательский интерфейс, будь то веб-страницы или приложение Windows или приложение для мобильных устройств.

Презентатор является связующим звеном между ними и мозгом всей компании. Действия, инициированные представлением, происходят в презентаторе. Обычно в приложении WinForms, например, событие Button.Click в моем представлении просто вызывает метод на Presenter, который затем выполняет все необходимые действия (и может просто делать что-то в представлении).

presenter содержит ссылку на представление (через интерфейс) и на модель. В представлении есть ссылка на ведущего (обычно я сильно набираю это, но это также может быть интерфейс). Модель не знает ни о ведущем, ни о представлении.

2
ответ дан 6 December 2019 в 12:51
поделиться

В любой из архитектур Model-View- * Модель - это то, что описывает данные в вашем приложении (и, если они соответствуют потребностям, передаются в представление для рендеринга).

Если ваше приложение уже имеет объекты домена, вполне возможно, что вы могли бы использовать их для своей модели.

4
ответ дан 6 December 2019 в 12:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: