Klasse von mehreren Klassen ableinten

02/06/2009 - 19:17 von Gerold Mittelstädt | Report spam
Hallo Zusammen!

Stehe gerade vor folgendem Problem:

Ich muss einige Klassen im Framework erweitern, und zwar um die genau
gleiche Funktionalitàt. Soweit kein Problem, nur da die Änderungen vom
zu erweiternden Control unabhàngig sind, würde ich gerne Redundanzen
vermeiden und das Ganze zusammenfassen, um mögliche Änderungen dann
nicht an 30 Stellen vornehmen zu müssen.

So; Das "einfachste" wàre ja, einfach mein Control von zwei Klassen
abzuleiten; einmal von der des zu erweiternden Controls und einmal von
der Klasse mit den Erweiterungen. Nur ist das ja leider nicht möglich.

Zweite Idee war, das mit einer generischen Erweiterungsklasse zu lösen.

Public Class Extender(Of T As WebControl)
Inherits T

Property...
Overrides Sub...
End Class

Und dann lediglich sowas als Aufruf:

Public Class MeineKlasse
Inherits Extender(Of Button)

End Class

Nur darf eine Klasse ja auch nicht von einem Typparameter erben.


Versuch 3: Partielle Klassen. Was das VS kann, kann ich ja auch. Nur:
Ich kann zwar eine Klasse mit beliebig vielen partiellen Klassen
"erweitern", nur eben nicht umgekehrt. Eine partielle Klasse auf viele
Klassen anwenden.

Gibt es also irgendeine saubere elegante Möglichkeit das Problem zu
lösen, oder muss ich in den sauren Apfel beißen?

Viele Grüße!
 

Lesen sie die antworten

#1 Peter Fleischer
02/06/2009 - 19:47 | Warnen spam
"Gerold Mittelstàdt" schrieb im
Newsbeitrag news:
...
Gibt es also irgendeine saubere elegante Möglichkeit das Problem zu
lösen, oder muss ich in den sauren Apfel beißen?



Hi Gerold,
so etwas kann man recht einfach über Extensions lösen. Da ist zwar für jede
Klasse und Methode eine Erweiterungsmethode zu schreiben. Diese können aber
die eigenliche gemeinsam genutzte Funktionalitàt aufrufen, so dass sich der
Aufwand in Grenzen hàlt.

Viele Grüsse
Peter

Ähnliche fragen