DDD: Gli oggetti immutabili possono anche essere entità?

8

Ho letto innumerevoli post sulle differenze tra entità e oggetti Value e mentre penso che almeno concettualmente capisco come i due differiscono, sembra che in alcuni di questi post gli autori considerino un particolare concetto di dominio come un VO semplicemente perché è immutabile (quindi il suo stato non cambierà mai, almeno all'interno di quel particolare modello di dominio).

Sei d'accordo sul fatto che se lo stato di un oggetto non cambierà mai all'interno di un particolare modello di dominio, allora questo oggetto non dovrebbe mai essere un'entità? Perché?

    
posta bckpwrld 08.01.2014 - 20:54
fonte

2 risposte

3

Seguendo il libro (Evans, 2004), "Un oggetto definito principalmente dalla sua identità è chiamato ENTITÀ". Questa definizione è indipendente dal fatto che l'oggetto sia mutevole o immutabile. Penso che sia molto meno probabile per un oggetto immutabile essere un'entità in un dato dominio, quindi è un'euristica utile per decidere se un oggetto è un "oggetto valore" o un "entità", ma questo è non fa parte della definizione.

Ad esempio, supponiamo di avere un'entità che rappresenta un dipendente, che può avere o meno un supervisore diretto. Se si decide di rappresentare l'idea di non avere un supervisore diretto come riferimento ad un oggetto supervisore "null", allora l'oggetto supervisore "null" è ragionevolmente considerato un'entità. E probabilmente potresti rendere immutabile questo oggetto "null".

    
risposta data 08.01.2014 - 22:54
fonte
2

Il modo in cui ho letto questo è che un oggetto valore è un oggetto che non ha un'identità su se stesso e che non ha nulla a che fare con il suo stato che sta cambiando o non sta cambiando. Questo fa la differenza tra un'entità e un oggetto valore che un'entità ha una chiave primaria, mentre un oggetto valore no; avrà una chiave esterna per l'entità a cui appartiene.

link

Posso ancora cambiare le proprietà dell'oggetto valore, ma non è necessario che sia mai identificato indipendentemente dalla sua entità.

    
risposta data 08.01.2014 - 22:30
fonte

Leggi altre domande sui tag