Czy konieczne jest zastąpienie metod równań i kodów kreskowych w DTO? Ponieważ DTO są używane tylko do przesyłania danych. Czy jest jakaś najlepsza praktyka lub coś w tym stylu?Zignorowanie metody równa się w DTO
Dzięki.
Czy konieczne jest zastąpienie metod równań i kodów kreskowych w DTO? Ponieważ DTO są używane tylko do przesyłania danych. Czy jest jakaś najlepsza praktyka lub coś w tym stylu?Zignorowanie metody równa się w DTO
Dzięki.
This article oferuje jedną radę:
obiektów umieszczonych na liście, ustaw lub mapy (albo jako klucz lub wartość) powinien mieć odpowiednią definicję równymi.
pewnością DTOs służą do więcej niż tylko przekazać, mamy utrzymać je, sortować je, buforować je ...
W praktyce ludzie nie zapewniają równych i hash? Nie zawsze. Powinniśmy? Chyba tak.
Niezależnie od tego, czy musisz dostarczyć equals
i hashcode
implementacji dla twoich zajęć DTO zależy od tego, jak ich używasz.
Jeśli używasz ich z co najmniej jedną kolekcją, powinieneś podać implementację odpowiedniej metody. Prawie wszystkie kolekcje wywołują na obiektach, które przechowują, equals
. Zbiorcze zbiory tabelowe, takie jak HashSet
i HashMap
, wywołują hashcode
, podczas gdy sortowane kolekcje, takie jak TreeSet
i TreeMap
, wywołują metodę oprócz equals
.
Jeżeli staje się zbyt trywialne mogę polecić użyciu Lombok adnotacje http://projectlombok.org/features/
„Jest to szczególnie prawdziwe w odniesieniu do«»klas, które są mapowane do rekordów bazy danych” data-centric są odwzorowywane DTOs do rekordów bazy danych? Myślę, że byłyby to twoje podmioty/POJO, podczas gdy DTO służą jedynie do transferu danych i nie powinny zawierać żadnej logiki. –
Jest logika i logika ... Jeśli zamierzasz przechowywać DTO w kolekcjach, prawdopodobnie będziesz potrzebował haszu i równa. To nie oznacza dodania poważnej logiki biznesowej. – djna
dzięki za wyjaśnienia. –