Hallo, ich habe eine grundsätzliche Frage zum instanziieren von Klassen. Ich arbeite an einem Projekt mit mehreren Schichten. Auf den unteren Schichten sind die CRUD Operationen ausprogrammiert.
Bisher mache ich es folgendermaßen:
public class AptController : Base<IApt> { private DataAccessApt _DataAccessApt = new DataAccessApt(); ... public override IApt Create(ICal cal, IApt apt) { ... IApt retApt = _DataAccessApt.Create(value); } ... }
Heisst ich instanziere die "untere" Schicht gleich. Beim Debuggen sehe ich, dass natürlich bei jeder Instanzierung auch gleich die unteren Schichten instanziiert werden.
Ist es jetzt schlauer das ganze folgendermaßen zu lösen?
public class AptController : Base<IApt> { private DataAccessApt _DataAccessApt = null; ... public override IApt Create(ICal cal, IApt apt) { ... _DataAccessApt = new DataAccessApt(); IApt retApt = _DataAccessApt.Create(value); } ... }
Also das man die Klasse die man benötigt erst dann instanziiert wenn man diese wirklich benötigt. Oder gibt es noch andere Richtlinien? Bin noch ziemlich am Anfang und beschäftige mich gerade mit dem Thema.
Vielleicht hat ja jemand hilfreiche Tipps. Vielen Dank Kruemel
Finde die zweite Lösung auch besser besonders wenn "Fremde" Objecte / Classen instanziert werden. So können Exceptions behandelt werden und Init-Funktionen ausgeführt werden.