AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fluent Interface - keine Vererbung möglich?

Ein Thema von hschmid67 · begonnen am 29. Okt 2017 · letzter Beitrag vom 2. Nov 2017
 
hschmid67

Registriert seit: 2. Jul 2012
Ort: Weilheim i. Obb.
75 Beiträge
 
Delphi 12 Athens
 
#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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz