Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Datenstruktur: Kindobjekt als Objekt oder Record

  Alt 4. Mai 2022, 13:14
Als Interfaces:
Delphi-Quellcode:
TMyObj = class(TInterfacedObject, MyInterface)
 Field_A: IGrpA;
 Field_B: IGrpB;
 Field_C: IGrpC;
 Field_D: IGrpD;
 Field_E: IGrpE;
 Field_F: IGrpF;
Um der Dependency Injection gerecht zu werden, würde der constructor also so aussehen:
constructor TMyObj.create(aGrpA: IGrpA; aGrpB: IGrpB; aGrpC: IGrpC; aGrpD: IGrpD; aGrpE: IGrpE; aGrpF: IGrpF); Unnötig zu sagen, das grenzt wieder an Unübersichtlichkeit und überschreitet eine vernünftige Anzahl an Parametern.
Delphi-Quellcode:
type
  TMyObjData = record
      GrpA: IGrpA;
      GrpB: IGrpB;
      GrpC: IGrpC;
      GrpD: IGrpD;
      GrpE: IGrpE;
      GrpF: IGrpF;
  end;

//...

constructor TMyObj.Create(const AMyObjData: TMyObjData);
begin
  Self.FMyData := AMyObjData;
  // Tataa, fertig! Super erweiterbar, man muss die Methodensignatur des Constructors nicht mehr anpacken!
end;
Jetzt kannst du dir noch aussuchen, ob du deine öffentlichen Properties auf das gesamte Sammel-Record zeigen lässt oder auf die einzelnen Bestandteile davon.
  Mit Zitat antworten Zitat