Frage

im eine Factory-Klasse zu schaffen, die ein Objekt wird contruct und zurück. Ich würde normalerweise an der Data Access Layer alle Daten, Dinge tun, aber ich glaube nicht, dass ich mein Ziel erreichen konnte und immer noch tun. Was ich tun möchte, ist ein SQLDataReader verwenden, um schnell die Dateninformationen zu lesen und das Objekt zu füllen, um aus der Fabrik zurückgeschickt werden. Ist das eine dumme Idee? Gibt es einen besseren Ansatz? Ich würde es vorziehen, nicht nur auf einen Datensatz aus der DAL zurück falls möglich, oder ist es eine Frage der Leistung gegen Wartbarkeit?

War es hilfreich?

Lösung

In den meisten Fällen ist dies eine gute Idee, da auf diese Weise zwei große Vorteile:

  1. Auf diese Weise können die Datenzugriff und Geschäftslogik trennen können, was bedeutet, wenn Sie Datenbank, um die obere Schicht Algorithmen entwerfen ändern müssen nicht geändert werden.

  2. Von OO stehen Punkt, einige reine Daten in Objekte konvertieren und auch das Verhalten der Objekte hinzugefügt werden, die den Code leichter macht zu halten und wieder verwendbar.

Andere Tipps

Wenn Sie sicher sind, dass Sie gehen alle Daten zu verwenden Sie aus dem SQLDataReader laden, dann ja, können Sie es auf die Bauzeit in der Fabrik tun konnte. Allerdings, wenn der Datensatz viele Felder hat, die nur eine Minderheit der verwendet wird, dann bedarf Laden die Daten zum Zeitpunkt der Accessoren genannt werden, würde eine bessere Nutzung der Ressourcen sein.

Das heißt, ich schlage vor, Sie es in der Fabrik laden, wenn Sie alle ‚Stücke‘ haben bei der Hand, und wenn es nicht ganz richtig ist, werden Sie wissen, was Festsetzung muss. Immer mit der einfachsten Sache beginnen, die möglicherweise funktionieren könnte.

Ich würde sagen, dass es auf Ihrer erwartete Nutzung der Fabrik abhängt. Wenn dies ein Werk auf dem Data Access Layer ist, die verwendet werden, um Business-Objekte mit Daten aus der Datenbank zu füllen, dann ja das ist der Ort, es zu tun. (Der IRepository Muster ist etwas, so ... eine Art).

Wenn Ihr Werk ist nicht in der Nähe Ihres Datenzugriffscode leben soll, würde ich halte sie trennen. Erinnern Sie sich die Einzel Prinzip Verantwortung : Objekte sollten nur haben ein Grund zu ändern. Wenn die Fabrik gerade ist Objekte mit Daten bevölkert, dann ist das eine geeignete Verwendung jedoch, wenn es Objekte mit Daten zusätzlich zu anderen Dingen bevölkert, dann ist es am besten, nicht die Daten Sachen hinzuzufügen.

Es gibt Kompromisse je nachdem, wie Sie gehen, so allgemein gerne Ich mag Objekte zu halten, so einfach wie möglich für so lange wie möglich.

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