Typ der Klasse, die mehrere Schnittstellen implementiert

8

Ich versuche gerade, einige Klassen zu schreiben, und ich komme über das folgende Problem:

Ich versuche, eine Klasse zu schreiben, die einige Funktionalität von zwei Schnittstellen implementiert

%Vor%

Und ich habe zwei Klassen, die diese Schnittstellen implementieren:

%Vor%

Gibt es so, wie ich das machen kann?

%Vor%     
Timo Willemsen 22.06.2011, 19:35
quelle

4 Antworten

9

Erstellen Sie eine neue Schnittstelle

%Vor%

und make FooA und FooB implementieren es stattdessen.

    
jontro 22.06.2011, 19:38
quelle
1

Sie können eine abstrakte Basisklasse oder eine andere Schnittstelle erstellen, die sowohl IA als auch IB erweitert

%Vor%

und

%Vor%     
Bala R 22.06.2011 19:38
quelle
1

Dies ist möglicherweise nicht genau das, was Sie wollen, aber Sie könnten eine dritte Schnittstelle erstellen, die beide erweitert:

%Vor%

Dann würden FooA und FooB IAandB anstelle von IA und IB direkt implementieren:

%Vor%

Dann können Sie thisClassImGonnaUse vom Typ IAandB :

deklarieren %Vor%     
Michael McGowan 22.06.2011 19:40
quelle
0

Wenn es die Möglichkeit gibt, dass eine Klasse implementiert IA und IB , und diese Tatsache macht konzeptionell Sinn für die Problemdomäne, in der Sie arbeiten, die nur eine IAB wie das

%Vor%

Bestimmen Sie , wenn es in Ihrem Fall sinnvoll ist, so einfach zu fragen wie was wäre ein guter Name für IAB? Wenn Sie eine zufriedenstellende Lösung finden können Beantworten Sie dies, Sie können nur diese Schnittstelle hinzufügen. Wenn nicht , dann ist der richtige Ort für Ihre zwei

%Vor%

Zeilen wären eine Methode von FooA oder FooB (oder eine Basisklasse von diesen beiden). Auf diese Weise müssen Sie keine Umsetzungen oder Vermutungen über die Art der Klassen machen, die Ihre Schnittstellen implementieren (die später ungültig oder mühsam werden könnten).

    
Waldheinz 22.06.2011 19:42
quelle

Tags und Links