FwDonnerbalken
Erfahrenes Mitglied
Moin,
zugegeben, der Titel klingt schon recht strange und ich vermute bereits jetzt, dass es keine Lösung für das Problem gibt, aber dennoch:
Ich habe eine "BasisKlasse" und ein paar Klassen die von dieser Klasse erben. Außerdem implementieren die geerbten Klassen ein Interface, welches unter anderem eine Update()-Methode bereitstellt. Innerhalb der Update()-Methode wird jedoch immer der gleiche Code ausgeführt, was natürlich zu einer gewissen und unerwünschten Redundanz führt, wenn dieser Code in jeder geerbten Klasse vorliegt.
Der eigentliche Unterschied liegt in den Methoden (AddTable(), AddColumn(), die innerhalb der Update()-Methode aufgerufen werden, diese erledigen je nach Zweck (unterschiedliche Datenbanksysteme) der geerbten Klassen durchaus etwas unterschiedliche Dinge.
Mein Gedanke war nun, die Updatemethode in die die Basisklasse zu verlagern und diese dann mit base.Update() von der geerbten Klasse aufzurufen. Kein Problem! Aber, Update() soll nun die Methoden AddTable() oder AddColumn() welche mit ihrer jeweils speziellen Implementierung in der geerbten Klasse vorliegt.
Frage 1: Ist das überhaupt möglich?!
Frage 2: Wie?
Frage 3: Was wäre der eleganteste Weg das zu lösen?
zugegeben, der Titel klingt schon recht strange und ich vermute bereits jetzt, dass es keine Lösung für das Problem gibt, aber dennoch:
Ich habe eine "BasisKlasse" und ein paar Klassen die von dieser Klasse erben. Außerdem implementieren die geerbten Klassen ein Interface, welches unter anderem eine Update()-Methode bereitstellt. Innerhalb der Update()-Methode wird jedoch immer der gleiche Code ausgeführt, was natürlich zu einer gewissen und unerwünschten Redundanz führt, wenn dieser Code in jeder geerbten Klasse vorliegt.
Der eigentliche Unterschied liegt in den Methoden (AddTable(), AddColumn(), die innerhalb der Update()-Methode aufgerufen werden, diese erledigen je nach Zweck (unterschiedliche Datenbanksysteme) der geerbten Klassen durchaus etwas unterschiedliche Dinge.
Mein Gedanke war nun, die Updatemethode in die die Basisklasse zu verlagern und diese dann mit base.Update() von der geerbten Klasse aufzurufen. Kein Problem! Aber, Update() soll nun die Methoden AddTable() oder AddColumn() welche mit ihrer jeweils speziellen Implementierung in der geerbten Klasse vorliegt.
Frage 1: Ist das überhaupt möglich?!
Frage 2: Wie?
Frage 3: Was wäre der eleganteste Weg das zu lösen?