Witam serdecznie,
ostatnimi czasy projektując prosty model biblioteki umożliwiającej rezerwacje książek natknąłem się na następujący problem - wiele obiektów domeny potrzebowało aktualnego czasu systemowego.
Stosowanie metod typu LocalDate.now() nie wchodzi w grę ze względu na ograniczoną możliwość sensownego testowania. Wstrzykiwanie zegaru systemowego też odpada z tego względu, że obiekty domeny powinny być hermetyczne
Jednym z najbardziej podstawowych założeń obiektów jest hermetyzacja danych wraz z operującą na nich logiką.
~ Eric Evans
Przekazywanie zegaru na poziomie metod też nie wydaje się ładnym rozwiązaniem. Do tej pory udało mi się unikać zależności w obiektach domeny, jak w tym przypadku poradzić sobie z zależnością od czasu?