Frage

Ich bin verwirrt, wenn Objektinstanzen oder statische Helper Klassen zu erstellen. Zum Beispiel, wenn ich eine Methode aufrufen, ein Datenmodell und legt Datenbank zu aktualisieren, erstelle ich eine Instanz der Datacontext. Wie hoch ist die Lebensdauer dieser Datacontext und ist es in Ordnung, ein neuer Daten-Updates werden muss es jedes Mal neue Instanzen zu erstellen?

In meinem Controller habe ich eine Instanz von Datacontext und diese Instanz Wiederverwendung beim Verfassen eines Beitrags zum Beispiel an die Steuerung zurück.

War es hilfreich?

Lösung

Der Datacontext ist eine ziemlich leichte Klasse und sollte für eine Einheit der Arbeit verwendet werden. Typischerweise passieren, ich in einer Fabrik, die eine entsprechende Datacontext schaffen wird je nach Bedarf. Ich werde in der Regel wickeln diese in einem mit Block und wandeln die Ergebnisse in einer Liste (oder ein anderes Objekt), so dass die Abfrage in der Controller-Code und die daraus resultierenden Objekte meiner Ansicht übergeben durchgeführt wird. Auf diese Weise kann das Datacontext (von der Verwendung von Block) entsorgt werden, in der Controller-Methode.

Der Grund, dass eine Fabrik in den Controller zu injizieren ist zweifach - es erlaubt die Datacontext auf Anfrage erstellt werden und es erlaubt mir, eine Fabrik zu verwenden, die einen Mock Datacontext zum Testen erzeugt. Letzteres ermöglicht es mir, mit der eigentlichen Datenbank in meinen Unit-Tests zu vermeiden.

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