Domanda

Enti e gli oggetti di valore sono entrambi gli oggetti di dominio. Qual è l'uso di conoscere la distinzione tra i due in DDD? Ad esempio, non pensare a oggetti di dominio come sia un oggetto entità o valore di promuovere un modello di dominio più pulito?

È stato utile?

Soluzione

Sì, è molto utile per essere in grado di capire la differenza, soprattutto quando si sta progettando e implementare le tipologie.

Una delle principali differenze è quando si tratta di trattare con l'uguaglianza, in quanto entità dovrebbero avere un comportamento molto diverso che oggetti di valore. Sapere se l'oggetto è un'entità o di un oggetto di valore ti dice come si dovrebbe implementare l'uguaglianza per il tipo. Questo è utile in sé, ma non si ferma qui.

Le entità sono tipi mutabili (almeno dal concept). L'idea alla base un'entità è che rappresenta un concetto dominio con una progressione durata nota (cioè viene creato, subisce varie trasformazioni, viene archiviato e forse infine soppresso). Rappresenta la stessa particolare 'cosa' , anche se mesi o anni passano, e cambia lo stato lungo la strada.

Value Oggetti, d'altra parte, rappresentano semplicemente valori senza alcuna identità intrinseca. Anche se non c'è bisogno di fare questo, essi si prestano tremendamente bene essere attuate come tipi immutabili. Questo è molto interessante perché qualsiasi tipo immutabile è per definizione thread-safe. Come stiamo entrando nell'era multi-core, sapere quando implementare un oggetto come un tipo immutabile è molto importante.

Inoltre aiuta molto nel test di unità quando la semantica di uguaglianza sono ben noti. In entrambi i casi, parità è ben definito. Non so che lingua si usa, ma in molte lingue (C #, Java, VB.NET) l'uguaglianza è determinato con riferimento di default, che in molti casi non è particolarmente utile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top