Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Fehlende Mehrfachvererbung bei Schnittstellen (https://www.delphipraxis.net/181132-fehlende-mehrfachvererbung-bei-schnittstellen.html)

himitsu 18. Jul 2014 20:28

AW: Fehlende Mehrfachvererbung bei Schnittstellen
 
Zitat:

Zitat von Blup (Beitrag 1265893)
[delphi]
TFoo = class(TInterfacedObject, IFoo) // IBar, IBaz, alle Eltern durch den Compiler versteckt mit angelegt}

Nö.

Denn was ist, wenn jemand nicht will, daß das Objekt auch alle Vorfahren der supporteten Interfaces supported?


Delphi hat nunmal eine strenge Typsicherheit und sowas würde das total aufweichen,
was dann schnell mal Probleme mit überladenen Methoden ergibt, da am Ende dann jede Interface-Variable wie IInterface aussieht.

Stevie 18. Jul 2014 20:37

AW: Fehlende Mehrfachvererbung bei Schnittstellen
 
Zitat:

Zitat von himitsu (Beitrag 1265970)
Denn was ist, wenn jemand nicht will, daß das Objekt auch alle Vorfahren der supporteten Interfaces supported?

Dann leite deine Interfaces halt nicht voneinander ab, so dass der Compiler die nicht dort einfügt?

Die ganzen Devs, die mit C# programmieren, müssen ja echt arme Schweine sein, da sie mit solchen grausamen Problem zu kämpfen haben ... /ironie off

Uwe Raabe 18. Jul 2014 20:42

AW: Fehlende Mehrfachvererbung bei Schnittstellen
 
Zitat:

Zitat von Stevie (Beitrag 1265971)
Zitat:

Zitat von himitsu (Beitrag 1265970)
Denn was ist, wenn jemand nicht will, daß das Objekt auch alle Vorfahren der supporteten Interfaces supported?

Dann leite deine Interfaces halt nicht voneinander ab, so dass der Compiler die nicht dort einfügt?

Dann ist der Wunsch nach automatischem Einbinden der Parent-Interfaces ebenfalls obsolet.

Hier beißen sich einfach zwei Anwenderwünsche. Die aktuelle Implementation bietet aber einen Möglichkeit, das gewünschte trotzdem zu erreichen (durch explizites Aufführen der Interfaces), während ein implizites Einbinden der Parent-Interfaces nicht so einfach verhindert werden kann. Ergo: der aktuelle Ansatz ist flexibler.

Stevie 18. Jul 2014 21:31

AW: Fehlende Mehrfachvererbung bei Schnittstellen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1265973)
Hier beißen sich einfach zwei Anwenderwünsche. Die aktuelle Implementation bietet aber einen Möglichkeit, das gewünschte trotzdem zu erreichen (durch explizites Aufführen der Interfaces), während ein implizites Einbinden der Parent-Interfaces nicht so einfach verhindert werden kann. Ergo: der aktuelle Ansatz ist flexibler.

Der Wunsch, dass ein Elterninterface nicht explizit aufgenommen wird, ist imho rein theoretisch, denn man muss ja die "geerbten" Methoden sowieso implementieren. Und angenommen, IFoo "erbt" von IBar, kann ich ein IFoo derzeit immernoch einem IBar zuweisen. Aber wenn ich ein IFoo frage, "hey Supports(foo, IBar)" sagt es NÖ! Wie unlogisch ist das denn bitte?

Die aktuelle Implementierung ist designtechnisch komplett Tinnef und nur so weil Microsoft irgendwann mal Scheiße gebaut hat mit ihrer COM Implementierung. Er ist nicht flexibler sondern einfach unsafe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz