AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Dependency Injection: Injektion bestehender Objekte in ein neues

Dependency Injection: Injektion bestehender Objekte in ein neues

Ein Thema von s.h.a.r.k · begonnen am 29. Aug 2012 · letzter Beitrag vom 13. Sep 2012
Antwort Antwort
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

Dependency Injection: Injektion bestehender Objekte in ein neues

  Alt 29. Aug 2012, 12:59
Hallo zusammen,

habe da eine allgemeine Frage zum Thema Dependency Injection. Und zwar geht es im Speziellen um folgenden Sachverhalt: ich programmiere eine Anwendung, die Daten aus SAP lädt und anzeigt. Ich habe eine Application-Klasse, die in der Run-Methode eine Verbindung zu SAP aufbaut. Ist dies geglückt erstelle ich einen Daten-Controller, der Daten über die vorhandene Verbindung lädt und dann in der View darstellt.

So, nun habe ich, ausgehend von der Application-Klasse, die Abhängigkeiten zur SAP-Verbindungs-Klasse und der Controller-Klasse. Der Controller wiederum hängt von der SAP-Verbindungs-Klasse ab.

Habe bisher alles via Konstruktur-Injektion umgesetzt, da ich bisher die etwas naive Sicht gefahren habe, dass jede Klasse, die spezielle Komponenten benötigt, im Konstruktor nach einer passenden Instanz fragt. In meinem Beispiel stoße ich nun aber auf das Problem, dass ich die Application-Klasse eine SAP-Verbindungs-Instanz injiziert bekommt und genau diese soll auch automatisch in den Controller injiziert werden.

Ich könnte nun fragen, wie ich das am sinnvollsten hinbekomme, ohne dass ich jede Schnittstelle mit beliebig vielen Settern aufblase und dann die Eigenschaften immer manuell setze und im Code auf eine vorhandene Instanz prüfe. Ich glaube aber eher, dass ich einen Denkfehler bzgl. meinem Vorgehen habe, da ich doch eher neuer in dem Bereich DI bin. Bitte um Klärung, wie es gemacht werden sollte
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
DanielJ

Registriert seit: 8. Sep 2008
Ort: Hamburg
35 Beiträge
 
Delphi XE Professional
 
#2

AW: Dependency Injection: Injektion bestehender Objekte in ein neues

  Alt 13. Sep 2012, 11:53
Hallo,

letztendlich kannst du doch Abhängikeiten nur per Konstruktor oder Setter injezieren. Wenn das nicht "schön" ist, ist u.u. DI nicht das passende Pattern? Vergl. Service Locator als Alternative.
- Vieleicht ist ein gemeinsames Konfigurationsobjekt die Lösung um die Abhängikeiten etwas zu entwirren?
- Kommt für die Verbindung ein Singleton/ eine Fabrik in Frage, bei der sich Applikation und Controller ohne wissen von einander bedienen können?

Vieleicht solltest du noch etwas konkreter werden, denn anhand deiner sehr abstrakten Beschreibungen kann ein Denkfehler kaum vom geneigten Leser erkannt werden.

LG,
Daniel
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz