Presenter Model Viewer (MVP) Что такое модель? - PullRequest
7 голосов
/ 15 декабря 2009

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

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

  1. Объекты DOMAIN, доступные через нижние слои?
  2. Отдельный объект, определенный в ПРЕЗЕНТАЦИОННЫЙ слой, который отображается на Пользовательский интерфейс и использует данные, полученные из нижний слой?

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

Ответы [ 4 ]

7 голосов
/ 15 декабря 2009

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

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

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

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

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

4 голосов
/ 15 декабря 2009

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

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

3 голосов
/ 15 декабря 2009

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

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

2 голосов
/ 15 декабря 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...