Wie viele Konstruktorargumente sind zu viele?

Nehmen wir an, Sie haben eine Klasse namens Customer, die die folgenden Felder enthält:

NutzernamEmaiVornamNachnam

Sagen wir auch, dass gemäß Ihrer Geschäftslogik für alle Kundenobjekte diese vier Eigenschaften definiert sein müssen.

Now, wir können dies ziemlich einfach tun, indem wir den Konstruktor zwingen, jede dieser Eigenschaften anzugeben. Es ist jedoch ziemlich einfach zu erkennen, wie dies außer Kontrolle geraten kann, wenn Sie gezwungen sind, dem Kundenobjekt weitere erforderliche Felder hinzuzufügen.

Ich habe Klassen gesehen, die mehr als 20 Argumente in ihren Konstruktor aufnehmen, und es ist nur mühsam, sie zu verwenden. Wenn Sie diese Felder jedoch nicht benötigen, besteht die Gefahr, dass undefinierte Informationen oder, noch schlimmer, Fehler bei der Objektreferenzierung auftreten, wenn Sie sich bei der Angabe dieser Eigenschaften auf den aufrufenden Code verlassen.

Gibt es Alternativen dazu oder müssen Sie sich nur entscheiden, ob die Anzahl von X Konstruktorargumenten zu groß ist, um damit zu leben?

Antworten auf die Frage(28)

Ihre Antwort auf die Frage