Forum: Algorithmen, Datenstrukturen und Klassendesign
by Stevie,
13. Feb 2018
Hier mal ein kleines Beispiel:
program Simple_DI;
{$APPTYPE CONSOLE}
uses
System.SysUtils,
SimpleContainer in 'SimpleContainer.pas';
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Stevie,
8. Feb 2018
Ja, mit dem kleinen unterschied, dass der Konstruktor am besten auch interfaces injected bekommt und nicht Objekte.
Pure DI ist dann das hier:
var
x: IX;
y: IY;
z: IZ;
begin
y := TY.Create(...);
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Stevie,
7. Feb 2018
Du könntest den DI Container von Spring4D einsetzen ;)
Damit kannst du alles injecten, was du willst.
Aber dessen ungeachtet meine Empfehlung: designe den code so, dass du ihn über "pure DI" (sprich, wie würde ich das per hand machen) nutzen kannst - der Einsatz eines wie auch immer gearteten Containers kommt dann bloß oben drauf. Also keine versteckten extra für DI Konstruktoren oder...