Ist es in Ordnung, NotImplemented Exception in virtuellen Methoden zu werfen?

8

Ich habe eine Basisklasse für einige Dinge im Plugin-Stil, und es gibt einige Methoden, die unbedingt implementiert werden müssen.

Ich deklariere diese in der Basisklasse derzeit als virtuell, zum Beispiel

%Vor%

und im Abstieg habe ich ein

%Vor%

Ist es eine gute Übung, dort eine NotImplementedException zu werfen? Die Descendand-Klassen könnten beispielsweise die Module zur Handhabung verschiedener Dateiformate sein. Danke

    
Axarydax 15.05.2010, 19:10
quelle

4 Antworten

13

Im Allgemeinen würde ich erwarten, dass Ihre Basisklasse abstrakt ist und die Implementierung einfach auf die erbenden Klassen verschiebt.

%Vor%     
tvanfosson 15.05.2010, 19:13
quelle
10

Keine gute Idee.

Normalerweise würden überschreibende Methoden die Basisklassenmethode über

aufrufen %Vor%

und das würde jedes Mal kotzen.

Also generell schlechte Idee. In Ihrem Fall sieht es so aus, als ob es die bessere Wahl wäre, es abstrakt zu machen.

    
ToxicAvenger 15.05.2010 19:21
quelle
8

abstrakt scheint das zu sein, was Sie wirklich wollen.

    
ScottS 15.05.2010 19:13
quelle
8

Wäre es nicht besser, es als eine abstrakte Methode zu deklarieren?

Auf diese Weise müssen alle Implementierungstypen diese Methode ebenfalls implementieren.

    
Oded 15.05.2010 19:14
quelle

Tags und Links