В чем разница между объектом модели MVC, объектом домена и DTO
В чем разница между объектом модели MVC, объектом домена и DTO?
Мое понимание таково:
Объект модели MVC:
Моделирует данные для отображения в соответствующем представлении. Он может не отображаться непосредственно на объект домена, то есть может включать в себя данные из одного или нескольких объектов домена.
Сторона клиентаМожет содержать бизнес-логику. Например. проверки, расчетные свойства и т. д.Нет методов, связанных с постоянствомДоменный объект:
Объект, который моделирует реальный объект в проблемной области, такой как Резервирование, Клиент, Заказ и т. Д. Используется для сохранения данных.
Серверная сторонаНет бизнес-логикиDTO (Объект передачи данных):
Объект, используемый для передачи данных между слоями, когда слои находятся в отдельных процессах, например, из БД в клиентское приложение. Позволяет использовать одну транзакцию по сети, а не несколько вызовов при получении данных, соответствующих нескольким объектам домена. DTO содержит только данные и методы доступа, и здесь нет логики. Данные предназначены для конкретной транзакции БД, поэтому они могут или не могут напрямую отображаться на объект домена, поскольку они могут включать в себя данные из одного или нескольких объектов домена.
Используется как на стороне сервера, так и на стороне клиента, так как он передается между слоямиНет бизнес-логикиНет методов, связанных с постоянствомИтак, вопросы:
Верно ли понимание выше? Я упускаю некоторые ключевые моменты?
Есть ли какие-либо причины не использовать объекты Domain в качестве модели MVC, если предположить, что объекты Model не требуют дополнительной бизнес-логики?
Есть ли причины не использовать DTO в качестве модели MVC, если предположить, что объекты Model не требуют дополнительной бизнес-логики?