Value objects - piszecie sami czy korzystacie z gotowców

0

Do tej pory z Value Objects korzystałem "losowo", ale chciałbym mocniej na ten element zwracać uwagę. Każdy kto stosuje VO zapewne zauważył, że są bardzo powtarzalne i pewnie kombinował jakby trochę przyspieszyć ich wytwarzanie. Dlatego też pytanie jak do tego podchodzicie - piszecie własne klasy i na ich podstawie potem budujecie konkretne VO, czy raczej korzystacie z gotowych bibliotek. Jeśli z gotowych to chętnie poznam z jakich i Waszą ich ocenę.

0

Podasz przykład tego co się powtarza w VO i jak chciałbyś przyspieszać ich wytwarzanie? Znasz jakieś gotowe biblioteki do wytwarzani VO?

1

@hadwao: A to nie jest tak, że (zakładając) mając bibliotekę do "wytwarzania" VO mijamy się z całą ideologią VO? Też nie rozumiem co znaczy "powtarzalne" - moim zdaniem, jeżeli dwa VO są powtarzalne to w 90% można zrobić z tego jeden VO z dodatkową metodą (metodami) :)

0

VO z metodą? (nie liczę get/set)

0

@axelbest: na przykład wiele VO jest stringiem z prostą walidacją typu max/min length + ewentualnie jakiś regexp. Np. uuid i firstName w gruncie rzeczy mają bardzo powtarzalną logikę. Wiele VO opartych o integer to w zasadzie znowu ograniczenie max/min value itp.

Co do bibliotek to jest sporo prostych VO - czyli np. jest klasa "string" z podstawowymi walidacjami, którą sobie po prostu rozszerzasz, ale są też np. takie z dość niestandardowym podejściem jak https://github.com/funeralzone/valueobjects

0
axelbest napisał(a):

VO z metodą? (nie liczę get/set)

Przykładowo - mamy VO - wysokość. Wysokość może być metrach / calach. Jak chcesz porównać DWIE takie wysokości czy są sobie równe to dodajesz metodę equal i sprawdzasz tam czy poza value jest jeszcze odpowiednia jednostka długości :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1