Le entità e gli oggetti valore sono entrambi oggetti dominio. A che serve conoscere la distinzione tra i due in DDD? Ad esempio, pensare agli oggetti di dominio come entità o valore oggetto di promuovere un modello di dominio più pulito?DDD: a cosa serve la differenza tra entità e oggetti valore?
risposta
Sì, è molto utile poter dire la differenza, in particolare quando si progettano e si implementano i tipi.
Una delle differenze principali è quando si tratta di affrontare l'uguaglianza, dal momento che le entità dovrebbero avere un comportamento molto diverso rispetto agli oggetti valore. Sapere se il proprio oggetto è un'entità o un oggetto valore indica come implementare l'uguaglianza per il tipo. Questo è utile di per sé, ma non si ferma qui.
Le entità sono tipi modificabili (almeno per concetto). L'idea alla base di un'entità è che rappresenta un concetto di dominio con una progressione nota della vita (cioè è creato, subisce diverse trasformazioni, è archiviato e forse eventualmente eliminato). Rappresenta lo la stessa particolare "cosa" anche se passano mesi o anni e cambia stato durante il percorso.
Valore Oggetti, d'altra parte, rappresentano semplicemente valori senza alcuna identità intrinseca. Anche se non devi farlo, si prestano molto bene per essere implementati come tipi immutabili. Questo è molto interessante perché qualsiasi tipo immutabile è per definizione thread-safe. Mentre ci stiamo spostando verso l'era multi-core, sapere quando implementare un oggetto come un tipo immutabile è molto prezioso.
Aiuta anche molto nei test delle unità quando la semantica dell'uguaglianza è ben nota. In entrambi i casi, l'uguaglianza è ben definita. Non so quale lingua usi, ma in molti linguaggi (C#, Java, VB.NET) l'uguaglianza è determinata dal riferimento di default, che in molti casi non è particolarmente utile.
- 1. A cosa serve - [NSUserDefaults registerDefaults:]?
- 2. System.Web.Abstractions: a cosa serve?
- 3. A cosa serve Enum?
- 4. DDD, entità dominio/VO e JPA
- 5. in entità DDD vs servizi
- 6. sem_init (...): A cosa serve il parametro pshared?
- 7. A cosa serve __RequestVerificationToken?
- 8. Differenza tra oggetti mobili e oggetti immutabili
- 9. A cosa serve OverrideAuthenticationAttribute?
- 10. CGRectIntegral a cosa serve?
- 11. A cosa serve object()?
- 12. A cosa serve Control.Category?
- 13. A cosa serve Control.IsHandleCreated?
- 14. DDD: sottoclassi e le entità di radice
- 15. .designer.cs a cosa serve?
- 16. A cosa serve Subject.asObservable?
- 17. A cosa serve #pragma?
- 18. A cosa serve AnyVal.types?
- 19. Android: a cosa serve Android.R.id.content?
- 20. A che cosa serve la metaprogrammazione?
- 21. A cosa serve la proprietà FormsAuthenticationTicket.Version?
- 22. A cosa serve la cartella .git/branches?
- 23. A cosa serve la sicurezza senza thread?
- 24. A cosa serve `classe A [_]`?
- 25. a cosa serve la parola chiave final?
- 26. Differenza tra $ ('# schede a') e $ ('# schede'). Find ('a')
- 27. Qual è la differenza tra entità e classe?
- 28. angolare 2 differenza tra $ {valore} e {{valore}}
- 29. Differenza tra CloudKit e Storage a valore chiave
- 30. A cosa serve il clientID?