Referencje do jednego obiektu w wielu klasach

0

Jeśli jakiegoś referencyjnego obiektu będę używać w wielu klasach (a także wątkach, ale to w sumie nie ma znaczenia, bo tym obiektem jest SynchronousQueue) to czy zamiast w każdej klasie dawać pole i inicjalizować je w konstruktorze, lepiej będzie walnąć gdzieś statyczny w/w obiekt i odnosić się do niego?

0

Ten obiekt przekazywany jest do klas tworzonych w klasach i ciągnie się jak łańcuch... Wydaje mi się to trochę bez sensu.

EDIT: Kurde, no! @Swr , Jak tak można, usuwać własne posty a ja potem odpisuje do ściany!

2

Lekcja na dziś: wstrzykiwanie zależności :)
Najlepiej byłoby ten obiekt wstrzyknąć przez kontener IoC ale jak sie nie da to wygodniej będzie ci zrobić ServiceLocator albo od biedy Singleton.

1

Statyczne metody utrudniają testowanie (pomijając zabawy z classloaderami jak np w PowerMocku, ale one też nie są jakieś super czytelne). Lepiej poświęcić się i napisać kilka procent kodu produkcyjnego więcej, ale za to mieć lepsze testy jednostkowe.
Czasami jednak statyczne metody mają sens, ale to raczej takie, które nie korzystają ze statycznego mutowalnego stanu i mają na tyle wąski obszar działania, by nie trzeba było ich mockować w testach.

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