Wpis z mikrobloga

#java #spring #watki

Mirki, czy tworzac klase DTO w springu - powinienem sie martwic wielowatkowoscia? Przegladajac przyklady - czasami widze, ze ludzie uzywaja pol finalnych - bez setterow, wszystko w 100% thread safe. Czasami sa to klasy ze zwyklymi polami, getterami/setterami... Nie znalazlem zadnej argumentacji popierajacej uzywanie ktoregos ze sposobow. Jak to powinno wygladac?
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mariusz-laszczka: Używanie immutable obiektów ma wiele zalet, nie tylko bycie thread safe. W większości przepływów DTO nie będzie mutowane przez inne wątki więc to nie jest najważniejsze co na to wpływa. Używanie immutable obiektów jest trochę bardziej złożone pamięciowo i obliczeniowo jednak nakłada pewne ograniczenia, które bardzo mocno porządkują kod. Jeśli używasz tego podejścia nie musisz martwić się o to czy wywołana funkcja nie wprowadzi jakiś efektów obliczeniowych na przekazanych
  • Odpowiedz
@fegwegw: Jak sam wspomniałeś potrzeba zachodzi przed zapisaniem ich w DTO, czyli możesz to wykonać przed
lub w trakcie wywołania konstruktora a potem operować na immutowalnym DTO. Da ci to gwarancje posiadania stałych i znormalizowanych danych.
  • Odpowiedz
czyli możesz to wykonać przed

lub w trakcie wywołania konstruktora


@Waffenek: A jak mam 10 pól do ustawienia? Z tego 5 opcjonalnych?

Ja po prostu wytknąłem, że mówienie, że 'settery są niepotrzebne', jest sporym nadużyciem bez kompletnej wiedzy na temat architektury.
  • Odpowiedz
@fegwegw: No to ładnie by tam pasował builder. Nawet niech będzie taki najprostszy mutowalny z Lomboka. Robisz build i dalej masz już gwarancje że ty sam ani nikt inny nie zamiesza nic w stanie obiektu.
  • Odpowiedz