Выбор модели объекта - PullRequest
       2

Выбор модели объекта

2 голосов
/ 06 января 2011

В настоящее время я работаю над отчетным приложением ASP.NET MVC, используя C #. Это редизайн из PHP-приложения, которое было изначально создано вместе, и теперь начинает набирать обороты. Таким образом, мы находимся в процессе доработки серверной части, чтобы иметь более ОО подход. Одно из решений, с которыми я сейчас борюсь, - это как структурировать доменные объекты. Поскольку 95% сайта доступно только для чтения, я не уверен, что типичные подходы практичны.

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

Кто-нибудь имеет хорошее представление о том, почему я должен идти тем или иным путем?

1 Ответ

1 голос
/ 06 января 2011

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

Затем я бы получил свою объектную модель из этой концептуальной модели.Поведения, определенные проблемной областью, должны быть затем добавлены к объектам в этой модели, например, добавление книги в книжный магазин, снятие денег со счета.

Другие варианты поведения, например сохранение данных в базе данных, чтов конечном счете, пользователю, не заботящемуся об изоляции, следует добавить соответствующие объекты, созданные для этих целей, например, объект единица работы , который будет формировать уровень доступа к данным (DAL).

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

...