Моделей / Сущностей и N-уровневых приложений - PullRequest
0 голосов
/ 03 мая 2010

Я только месяц назад обнаружил глупость прямого доступа к сущностям / моделям из уровня доступа к данным n-уровневого приложения. Прочитав о ViewModels во время изучения ASP.NET MVC, я понял, что для создания действительно расширяемого приложения модель, с которой взаимодействует уровень пользовательского интерфейса, должна отличаться от той, к которой имеет доступ уровень доступа к данным.

А как насчет бизнес-уровня? Должен ли я иметь другой набор моделей для своего бизнес-уровня? Для истинного разделения интересов, должен ли я иметь определенный набор моделей, которые относятся только к моему бизнес-уровню, чтобы не связываться с какими-либо сущностями (возможно, сгенерированными, например, структурой сущностей или EJB) в DAL или будет что будет излишним?

Ответы [ 2 ]

1 голос
/ 03 мая 2010

Да, вы можете. Однако это конкретное решение усложняет ваш код и приводит к куче POCO, которые имеют схожие свойства и данные, что бессмысленно.

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

0 голосов
/ 03 мая 2010

ASP.NET MVC хорошо обслуживается способом Model-View-ViewModel (MVVM). Это означает, что каждое представление получает ОДИН и ТОЛЬКО ОДИН ViewModel, представляющий собой пользовательскую модель, предназначенную для обслуживания этого представления.

Например, если у вас есть представление Orders, для которого нужны некоторые данные OrderDetail и Customer, создайте ViewModel, который предоставляет только данные из тех сущностей, которые требуются для этого View. ViewModel служит для объединения данных из несколько (или одна, если необходимо) сущностей.

Ваши сущности и бизнес-логика находятся «под» слоем View / ViewModel и не должны знать о его реализации.

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