В чем разница между объектом модели MVC, объектом домена и DTO

В чем разница между объектом модели MVC, объектом домена и DTO?

Мое понимание таково:

Объект модели MVC:

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

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

Доменный объект:

Объект, который моделирует реальный объект в проблемной области, такой как Резервирование, Клиент, Заказ и т. Д. Используется для сохранения данных.

Серверная сторонаНет бизнес-логики

DTO (Объект передачи данных):

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

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

Итак, вопросы:

Верно ли понимание выше? Я упускаю некоторые ключевые моменты?

Есть ли какие-либо причины не использовать объекты Domain в качестве модели MVC, если предположить, что объекты Model не требуют дополнительной бизнес-логики?

Есть ли причины не использовать DTO в качестве модели MVC, если предположить, что объекты Model не требуют дополнительной бизнес-логики?

Ответы на вопрос(5)

Ваш ответ на вопрос