Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#20

AW: Generisches Alias von TFrame

  Alt 16. Mai 2018, 15:23
Irgendwo in der Struktur muss ein Teil rein, was anhand des konkreten Typs von T die richtige nicht generische Klasse zum Lesen/Speichern/Whatever erstellt, sofern dieser Code nicht über einen generischen Algo gelöst werden kann. Ich würde mir also überlegen, das CSV Zeugs nicht per Ableitung sondern Aggregation zu koppeln.

Ja, irgendwo im generischen Code muss dann eine if-then-else "Leiter" wie zuvor schon gezeigt rein.

Die Aggregation kann dann per API die Basisklasse nutzen aber je nach Implementierung weiß sie dann, dass die TFrucht Instanzen, die da rein oder raus gehen Äpfel oder Bananen sind.

Aus Erfahrung würd ich dir raten, das Design nochmal zu überdenken und genau zu schauen, wo du strikte Typensicherheit haben willst und wo du lieber mit einer nicht generischen Basisklasse arbeitest die auf Instanzen von TSchritt arbeiten. Man kann dann auch problemlos eine sehr dünne generische Schicht auf eine solche nicht generische Klasse oben drauf setzen (oder per Interface implementieren), so dass entsprechende Consumer typensicher arbeiten. Tiefe generische Hierarchien, bei denen dann noch die Logik abhängig vom generischen Typenparameter ist, enden selten gut.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (16. Mai 2018 um 15:29 Uhr)
  Mit Zitat antworten Zitat