Las entidades y los objetos de valor son objetos de dominio. ¿De qué sirve saber la distinción entre los dos en DDD? Por ejemplo, ¿pensar en objetos de dominio como una entidad o un objeto de valor fomenta un modelo de dominio más limpio?DDD: ¿de qué sirve la diferencia entre entidades y objetos de valor?
Respuesta
Sí, es muy útil saber la diferencia, especialmente cuando diseña e implementa sus tipos.
Una de las principales diferencias es cuando se trata de tratar con la igualdad, ya que las entidades deben tener un comportamiento bastante diferente que los objetos de valor. Saber si su objeto es una Entidad o un Objeto de Valor le dice cómo debe implementar la igualdad para el tipo. Esto es útil en sí mismo, pero no se detiene allí.
Las entidades son tipos variables (al menos por concepto). La idea detrás de una Entidad es que representa un concepto de Dominio con una progresión conocida de por vida (es decir, se crea, sufre varias transformaciones, se archiva y quizás se elimina). Representa la misma 'cosa' en particular, incluso si pasan meses o años, y cambia de estado en el camino.
Value Objects, por otro lado, simplemente representan valores sin ninguna identidad inherente. Aunque no tienes que hacer esto, se prestan tremendamente bien para implementarse como tipos inmutables. Esto es muy interesante porque cualquier tipo inmutable es, por definición, seguro para subprocesos. A medida que nos movemos hacia la era multinúcleo, saber cuándo implementar un objeto como un tipo inmutable es muy valioso.
También ayuda mucho en las pruebas unitarias cuando la semántica de igualdad es bien conocida. En ambos casos, la igualdad está bien definida. No sé qué idioma usas, pero en muchos idiomas (C#, Java, VB.NET) la igualdad se determina por referencia de manera predeterminada, lo que en muchos casos no es particularmente útil.
- 1. DDD: Ayúdenme a comprender mejor objetos y entidades de valor
- 2. DDD, objetos de valor y ORM
- 3. DDD: subclases y entidades raíz
- 4. Diferencia entre valor y valor de elemento
- 5. diferencia entre cursor y objetos de conexión
- 6. DDD - Responsabilidad de creación y validación de entidades
- 7. para qué sirve .exp y cuál es la diferencia entre .lib y .dll
- 8. métodos en entidades DDD contra servicios
- 9. DDD - Agregar raíces y crear objetos de comportamiento
- 10. Modelado de dominio, objetos de dominio en DDD
- 11. ¿Cuál es la diferencia entre (tipo) valor y tipo (valor)?
- 12. DDD "Ver objetos"?
- 13. Marco de entidades y objetos de acoplamiento
- 14. jvisualvm diferencia entre objetos en vivo y objetos asignados
- 15. diferencia entre @size (máx = valor) y @Min (valor) @max (valor)
- 16. La diferencia entre $ * y $ @
- 17. Diferencia entre Element.value y Element.getAttribute ("valor")
- 18. Diferencia entre Entero (valor) y value.to_i
- 19. Objetos comerciales frente a entidades
- 20. ¿Cuál es la diferencia entre referencias y objetos en Java?
- 21. Forma correcta de crear entidades secundarias con DDD
- 22. Establecer unidades de diferencia entre objetos datetime
- 23. diferencia entre el nombre de la entidad y el nombre del conjunto de entidades
- 24. phpinfo() diferencia entre el valor maestro y el valor local
- 25. diferencia entre JMX y RMI
- 26. EF4: Diferencia entre POCO, entidades de seguimiento automático, POCO Proxies
- 27. ¿cuál es la diferencia entre declaración de función y firma?
- 28. diferencia entre la llamada por referencia y llamada por valor
- 29. DDD - Modificaciones de objetos secundarios dentro del agregado
- 30. sem_init (...): ¿Para qué sirve el parámetro de valor?