In einigen unserer Projekte gibt es eine Klassenhierarchie, die mehr Parameter hinzufügt, wie es in der Kette abläuft. Unten können einige der Klassen bis zu 30 Parameter haben, von denen 28 nur in den Superkonstruktor übergeben werden.Managing Konstruktoren mit vielen Parametern in Java
Ich werde erkennen, dass die Verwendung von automatisierten DI durch etwas wie Guice wäre nett, aber aus bestimmten technischen Gründen sind diese spezifischen Projekte auf Java beschränkt.
Eine Konvention, die Argumente alphabetisch nach Typ zu ordnen, funktioniert nicht, weil wenn ein Typ refaktorisiert wird (der Kreis, den Sie für Argument 2 übergeben, jetzt eine Form ist), kann er plötzlich nicht mehr funktionieren.
Diese Frage könnte zu spezifisch und mit "Wenn das ist Ihr Problem, Sie tun es falsch auf einer Design-Ebene" Kritikpunkte sein, aber ich bin nur auf der Suche nach irgendwelchen Standpunkten.
Natürlich muss man bei statischen Importen diese "Erbauer" überhaupt nicht "sehen". Sie können beispielsweise den Namen einer statischen Methode (String name) angeben, der einen Builder zurückgibt, und Student (StudentBuilder), der einen Student zurückgibt. Daher Student (Name ("Joe"). Alter (15) .motto ("Ich habe mich selbst nass gemacht")); –
@oxbow_lakes: In Ihrem Beispiel hat die Klasse den Namen der statischen Methode (String name)? – user443854
Technisch gesehen ist es möglich, Student-Klasse zu verwenden, um einen neuen Schüler zu bauen. Ich habe die Methoden in der Student-Klasse hinzugefügt und es hat gut funktioniert. Auf diese Weise brauchte ich keine andere Builder-Klasse. Ich bin mir nicht sicher, ob dies wünschenswert ist. Gibt es einen Grund, eine andere (StudentBuilder) -Klasse zu verwenden, um es zu bauen? – WVrock