Generics sind prinzipiell dafür da, ebend unabhängig vom Typen einen Algorithmus auszuführen und nicht kontextuell etwas anderes
Das trifft ja ziemlich genau meine letzte allgemeine Problem-Beschreibung:
Ich benoetige ein Objekt, das entweder ein TApfel (/A1) oder eine TBanane (/A2) sein kann und will darauf unabhaengig vom Typ meine allgemeinen Algorithmen ausfuehren (A-manipulierend, A-Rausgebend Getter etc.) eben ohne explizit alles in TApfel- und TBanane-Prozeduren (separate private TBanane und TApfel im Adapter) spalten zu muessen.
Also vermute ich mal, dass ich zu Recht zu generics gegriffen habe.
Das Problem ist nur, dass ich meinen Adapter, mein Model und alles was in Abhaengigkeit (oder eher Unabhaengigkeit) von TApfel oder TBanane handeln will, natuerlich auch Generisch deklarieren moechte. Denn dann erstelle ich mir auf oberster Ebene festlegend einfach einen
ObstAdapter := TObstAdapter<TBanane>.Create;
oder eben
TObstAdapter<TApfel>.Create;
, der wiederum entsprechend entweder einen TApfel oder eine TBanane in sich erstellt usw.
In Wirklichkeit sind da noch ein paar generisch abhaengige Ebenen dazwischen, aber wenn eine geht, gehen alle. Hauptsache nicht alles ausschreiben oder immer um <T> rumanalysieren (wobei die Loesung von Stevie noch einigermassen ertraeglich scheint). Das war meine Erwartung, das <T> einfach runterreichen zu koennen...