To zależy od sytuacji.
Czemu klasy u Ciebie mają tylu współpracowników?
Intuicja dobrze Ci podpowiada, że długie listy parametrów do jakichkolwiek funkcji -- w tym konstruktorów -- są be. I że posiadanie jednej klasy z referencjami do pozostałych też jest na ogół be (poza specyficznymi przypadkami, np. gdy klasa ta jest rejestrem czy udostępniaczem usług).
Zwykle trzeba po prostu zrefaktoryzować hierarchię klas w strukturę bardziej... drzewiastą. Niech klasy mają niewielką liczbę współpracowników, np. 1-2. Referencje do nich możesz przekazać w konstruktorze. Niech ci współpracownicy mają z kolei swoich współpracowników i tak dalej.
Ale uwaga: nie chodzi o to by w jakiejś klasie odwoływać się do współpracowników naszego współpracownika, tj. by pisać łańcuszki w stylu:
Pozycja poz = this.bieżącyStatek().dajUrządzeniaNawigacyjneNaMaszcie().dajGPS().dajPozycję();
Takie łańcuszki łamią prawo Demeter dla funkcji ( http://en.wikipedia.org/wiki/Law_of_Demeter ). Nie chodzi o to, że zawsze trzeba stosować się dokładnie do Prawa Demeter, ale warto mieć je na uwadzę i unikać szczególnie długich łańcuszków.
One są złe nie tylko dlatego, że głupio wyglądają, ale również dlatego, że pokazują szczegóły implementacyjne, które chcielibyśmy ukryć. W powyższym przykładzie chcemy od statku wyciągnąć pozycję, a musimy wiedzieć, że statek ma jakiś masz z urządzeniami nawigacyjnymi i że używa GPS-a do wyznaczenia swojej pozycji. Tymczasem klasa Statek
powinna po prostu udostępniać odpowiednią, bezpośrednią metodę:
Pozycja poz = this.bieżącyStatek().dajPozycję();
To, że statek poprosi o pozycję swojego współpracownika (MasztUrządzeńNawigacyjnych), który z kolei wybierze odpowiedni sposób (być może GPS, a może -- w razie awarii -- czujnik gwiezdny), to już szczegóły, których my nie musimy wiedzieć.
Generalnie ciężko Ci udzielić KONKRETNEJ rady (tj. krok po kroku co trzeba zrobić), nie mając odpowiedniego kontekstu i wiedzy o Twoim systemie. Masz jednak rację, że coś tu śmierdzi i nadaje się do refaktoryzacji: klasy powinny mieć mniejszą liczbę współpracowników. Nie powinny być ze sobą ściśle powiązane.