Что такое модель предметной области?Почему это предпочтительнее, чем набор данных в .net? - PullRequest
0 голосов
/ 06 апреля 2011

Мне было интересно, в заданиях я использовал наборы данных.Теперь, когда я начал работать в этой софтверной компании, люди использовали что-то под названием DTO - объект передачи данных.Откуда берется модель предметной области?Что это на самом деле?

Спасибо

Ответы [ 2 ]

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

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

0 голосов
/ 08 апреля 2011

DTO = Объект передачи данных, как звучит.Объект, который передает данные между системными слоями.Цель часто состоит в том, чтобы адаптировать данные запроса и ответа так, чтобы они соответствовали сценарию использования.Примером может быть то, что вы запрашиваете резюме через CandidateService системы управления персоналом на прикладном уровне.Служба кандидатов загружает информацию, которая охватывает различные доменные объекты: WorkExperince, Education, Personal Letter и т. Д. Чтобы избежать сложного и массивного графа объекта ответа, мы можем сгладить ответ, построив объект DTO, который точно соответствует тому, для чего клиент (GUI)необходимо.

Многое можно сказать о DTO.Но я не хочу писать роман :) Но DTO не принадлежат ни к модели предметной области, ни к ядру.DTO чаще всего упоминается в DDD как инструмент для связи между службами приложений для клиентов, особенно если вы используете веб-службы (WCF и т. Д.).Тогда DTO - это идеальный способ сериализации части вашего домена в сообщение веб-службы (сериализованный DTO).

Надеемся, вы также можете спросить своих коллег / коллег, что они намеревались достичь с помощью DTO.У DTO есть несколько недостатков, обычно это дает вам дополнительный уровень, а это означает, что нужно делать больше на этапе технического обслуживания ...

(к настоящему времени почти новинка). Я использую DTO только тогда, когда есть реальная выгода итогда вы можете доставлять сложные ответы с помощью DTO, точно соответствующие потребностям клиентов.В противном случае клиенту обычно необходимо вызывать различные службы или методы для сбора достаточного количества информации.

...