Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
7. Jun 2014
Ok, die ersten 2 Sätze kann ich nachvollziehen.
Aber das Supports stinkt nicht so ganz.
Wenn ich einer Funktion bestimmte Objekt-Interfaces (also quasi irgendwelche Objekte) übergebe und dann diverse Dinge damit tun will, dann muss ich doch wissen, was ich vor mir habe.
Z.B. kann ich prüfen, ob ISerialization unterstützt wird und das Objekt dann serialisieren.
Wenn IOrganic unterstützt...
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
7. Jun 2014
Das ist ein guter Einwand.
Wenn man aber die Instanziierung der Klassen (Erzeugen der Objekte) auslagert und fortan nur noch mit Interfaces arbeiten will, dann braucht man wiederum mächtige Interfaces, die die gesamte Funktionalität veröffentlichen.
Andernfalls müsste man immer prüfen, ob das vorliegende (Objekt-)Interface nun gerade zufällig IRead oder IWrite unterstützt, darauf casten und...
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
7. Jun 2014
Da muss ich offenbar noch etwas drauf rum denken...
Mit der Klassendefinition habe ich kein Problem.
Wenn ich die Objekte in einer Factory erzeugen lasse und nur mit den Interfaces weiter arbeite, dann erscheint mir eine Mehrfachvererbung doch sinnvoll.
var RW: IReadWrite;
X: Integer;
...
RW := TFactory.GetNewRW; // erzeugt ein TReadWrite und gibt es als IReadWrite zurück
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
7. Jun 2014
Ich will das gleich nochmal anprangern (weil ich gerade auf das Problem gestoßen bin).
Ist das in XE6 immer noch so?
Eine Mehrfachvererbung von Interfaces wäre wirklich sehr übersichtlich.
Dass Supports die Vererbungen nicht nachvollziehen kann und in den Klassen daher die einzelnen Interfaces angegeben werden müssen finde ich weniger schlimm.
Aber ein Interface von mehreren anderen...