È necessario eseguire l'override dei metodi equals e hashcode in DTO? Perché le DTO sono usate solo per i dati di trasferimento. C'è qualche pratica migliore o qualcosa in merito?Ignora metodo uguale in DTO
Grazie.
È necessario eseguire l'override dei metodi equals e hashcode in DTO? Perché le DTO sono usate solo per i dati di trasferimento. C'è qualche pratica migliore o qualcosa in merito?Ignora metodo uguale in DTO
Grazie.
This article offre un consiglio:
oggetti posti in una lista, Set, o mappa (sia come una chiave o un valore) dovrebbe avere una definizione appropriata di uguali.
Sicuramente DTOs sono utilizzati per più di un semplice trasferimento, noi li teniamo, ordinarli, li memorizzare nella cache ...
In pratica fanno gente forniscono eguali e hash? No non sempre. Dovremmo? Penso che sia così.
Se è necessario fornire o meno le implementazioni equals
e hashcode
per le classi DTO dipende da come le si utilizza.
Se li si utilizza con una o più raccolte, è necessario fornire l'implementazione per il metodo appropriato. Quasi tutte le raccolte chiamano equals
sugli oggetti che archiviano. Le raccolte basate su hash table come HashSet
e chiamano hashcode
, mentre le raccolte ordinate come TreeSet
e TreeMap
chiamano il metodo compareTo
in aggiunta a equals
.
Se diventa troppo banale posso consiglia di utilizzare le annotazioni Lombok http://projectlombok.org/features/
"Questo è particolarmente vero per i '' classi che mappano ai record del database" data-centric sono DTOs mappati i record del database? penserei che sarebbero le tue entità/POJO, mentre le DTO sono semplicemente per il trasferimento dei dati e non dovrebbero contenere alcuna logica. –
Esiste logica e logica ... Se si intende conservare i DTO nelle raccolte, è probabile che siano necessari hash e uguali. Ciò non implica l'aggiunta di una seria logica aziendale. – djna
grazie per il chiarimento. –