¿Cuál es la diferencia entre un objeto MVC Model, un objeto de dominio y un DTO?¿Cuál es la diferencia entre un objeto MVC Model, un objeto de dominio y un DTO
Mi opinión es:
MVC modelo de objetos:
Modelos de los datos que se mostrarán por una vista correspondiente. Como tal, puede no corresponderse directamente con un objeto de dominio, es decir, puede incluir datos de uno o más objetos de dominio.
- lado del cliente
- Puede contener lógica de negocio, por ejemplo, validación, propiedades calculadas, etc
- No hay métodos relacionados con la persistencia
objeto Dominio:
objeto que modela un objeto real mundial en el dominio del problema como reserva, el cliente, orden, etc. Se utiliza para los datos persiste .
- lado del servidor
- No lógica de negocio
DTO (Object transferencia de datos):
Un objeto utilizado para transferir datos entre las capas cuando las capas están en procesos separados, por ejemplo, de un DB a una aplicación de cliente. Permite una sola transacción a través del cable en lugar de múltiples llamadas. Un DTO contiene solo datos y métodos de acceso, sin lógica. Los datos son para una transacción DB concreta, por lo que pueden no estar directamente en un objeto de dominio, es decir, pueden incluir datos de uno o más objetos de dominio.
- utilizar en ambos lados como pasó entre capas
- ninguna lógica de negocio
- métodos no relacionados con persistencia
Así que para las preguntas:
(1) ¿Es mi entendimiento correcto? ¿Me estoy perdiendo algunos puntos clave?
(2) ¿Hay alguna razón para no usar objetos de Dominio como el Modelo MVC, suponiendo que los objetos del Modelo no requieren una lógica comercial adicional?
(3) ¿Hay alguna razón para no utilizar DTO como Modelo MVC, suponiendo que los objetos del Modelo no requieren una lógica comercial adicional?
Gracias.
Tim
buena pregunta .. +1 – nawfal