Konstruktoren gegen Fabrikmethoden

Bei der Modellierung von Klassen, was ist die bevorzugte Art der Initialisierung:

  1. Konstruktoren, oder
  2. Factory-Methoden

Und was wären die überlegungen für die Verwendung entweder von Ihnen?

In bestimmten Situationen, die ich lieber mit einer factory-Methode gibt null zurück, wenn das Objekt nicht erstellt werden kann. Dies macht den code ordentlich. Ich kann einfach überprüfen, ob der zurückgegebene Wert nicht null ist, bevor eine andere Aktion, in Kontrast mit dem auslösen einer exception aus dem Konstruktor. (Ich persönlich mag keine Ausnahmen)

Sagen, ich habe einen Konstruktor der Klasse erwartet einen id-Wert. Der Konstruktor verwendet diesen Wert zum Auffüllen der Klasse aus der Datenbank. In dem Fall, wo ein Datensatz mit der angegebenen id nicht vorhanden ist, wird der Konstruktor wirft eine RecordNotFoundException. In diesem Fall werde ich haben, schließen Sie den Bau aller solcher Klassen, die in einem try..catch-block.

Im Gegensatz zu dieser kann ich über eine statische factory-Methode auf diejenigen Klassen, die den Wert null zurück, wenn der Datensatz nicht gefunden wird.

Welcher Ansatz ist besser in diesem Fall, Konstruktor oder eine factory-Methode?

InformationsquelleAutor der Frage Hemanshu Bhojak | 2009-03-10

Schreibe einen Kommentar