Einzelnen Beitrag anzeigen

hschmid67

Registriert seit: 2. Jul 2012
Ort: Weilheim i. Obb.
62 Beiträge
 
Delphi 10.4 Sydney
 
#1

Fluent Interface - keine Vererbung möglich?

  Alt 29. Okt 2017, 14:47
Delphi-Version: 5
Hallo Zusammen,

ich bin gerade auf ein Problem gestoßen und glaube, dafür gibt es keine elegante Lösung. Aber vielleicht kommt Ihr doch weiter als ich:

Ich habe eine Klasse gefunden, die ich recht gut finde, und diese ist als Fluent Interface implementiert (es geht um Cesar Romeros Rest Client). Wirklich schick für Rest-Aufrufe!

Aber wie das so ist, es fehlt doch immer etwas, was man gerne hätte, und deshalb würde ich die Klasse gerne erweitern. Doch das scheint mit einem Fluent Interface nicht zu funktionieren. Das Problem liegt vereinfacht wohl daran:

Delphi-Quellcode:
TKlasseA = class
  function TuEtwas: TKlasseA;
end;

TKlasseB = class(TKlasseA)
  function TuEtwasAnderes: TKlasseB;
end;
Wenn ich nun die KlasseB erzeuge und aufrufe, etwa so:

Delphi-Quellcode:
Instance := TKlasseB.Create;
Instance.TuEtwas.TuEtwasAnderes;
Dann funktioniert das nicht, da Instance zwar beide Funktionen kennt, aber wenn ich Instance.TuEtwas aufrufe, erhalte ich nur TKlasseA zurück und das kennt natürlich TuEtwasAnderes nicht...

Kann man dann also, allgemein gesprochen, Klassen mit Fluent Interface nicht vererben? Oder gibt es doch einen Trickt?

Viele Grüße
Harald
Harald Schmid
  Mit Zitat antworten Zitat