Frage

Zurück paar Monaten habe ich einen Vortrag besucht veranstaltet von zwei Vertreter einer unabhängigen Software-Entwicklungsunternehmen. Es war in erster Linie um gute Software-Design und Praktiken.

Die beiden Jungs sprachen hauptsächlich über Java und ich erinnere mich, ihnen zu sagen, dass es in einigen Fällen sehr gute Praxis ist getInstanceOf () zu verwenden, anstatt den Konstruktor. Es hatte etwas mit der Herstellung immer anrufen getInstanceOf () aus verschiedenen Klassen zu tun, anstatt Konstruktor und wie es war, es ist viel besser Ansatz auf größere Projekten.

Wie man sehen kann ich nicht viel von ihm erinnern kann jetzt: / aber ich erinnere mich, dass die Argumente, dass sie verwendet wurden, waren wirklich überzeugend. Ich frage mich, ob jemand von euch schon einmal über ein solches Design kam und wenn, würden Sie sagen, ist es sinnvoll? Oder denken Sie, es geht gar nicht?

War es hilfreich?

Lösung

Sie wurden wahrscheinlich reden über die statischen Factory-Methode Muster (und nicht die Reflection-API Verfahren zum dynamischen Erstellen von Objekten).

Es auf mehrere Vorteile eines Verfahrens wie getInstanceOf() über einen Konstruktor und mit new. Die statische Factory-Methode kann ...

  1. Wählen Sie eine andere Unterklasse der Hauptklasse zu schaffen, wenn diese in bestimmten Fällen wünschenswert ist (basierend auf Umgebungsbedingungen, wie zum Beispiel Eigenschaften und anderen Objekte / Singletons oder Methodenparameter).

  2. Wählen Sie ein vorhandenes Objekt zurückzugeben, anstatt eine zu schaffen. Ein Beispiel hierfür finden Sie unter

Andere Tipps

Ich vermute, Sie meinen die newInstance Methode auf der Class-Klasse. Sie würde es so aufrufen: MyClass foo = MyClass.newInstance();

Diese Form der Objektinstanziierung ist beliebt in Erzeugungsmuster ; es ist nützlich, wenn Sie den Beton, Laufzeittyp eines Objekts von außen , wie in einer Eigenschaft oder XML-Datei angeben mögen.

Wenn Drew richtig ist, ist newInstance() Teil des Java-Reflection-API. So ist es nicht so natürlich wie ein Konstruktor.

Warum wäre es zu empfehlen es an einem großen Projekt zu verwenden, kann mit der Tatsache kommt, dass es führt zu Java Bean Programmierstil und macht deutlich die Erstellung des Objekts etwas Besonderes. Auf großes Projekt, Objekt erstellen soll nicht als Querschnitt Sorge, sondern eine eindeutig identifiziert Verantwortung, die oft aus einer Hand / Fabrik sein. Aber meiner Meinung nach, Sie alle diese Vorteile erhalten und viele mehr mit IoC Muster .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top