Hallo.
Ich habe Klassen B, C, D, E, F und G welche alle von A erben.
Alle Klassen überschreiben eine Methode
Jetzt müssen B und C gebrauch von der selben RegEx machen.
Ich habe also mehrere Möglichkeiten:
1) Ich initialisiere den RegEx String in den überschriebenen Methoden in B und C
2) Ich initialisiere den RegEx String in der Superklasse A als public static Feld.
3) Ich initialisiere den RegEx String in der Superklasse A als private static Feld und biete Zugang über eine getter methode
4) ???
Ehrlich gesagt finde ich alle Möglichkeiten schlecht.
1) verstößt gegen DRY.
2) entblößt den regex im gesamten Code (welcher ziemlich groß ist)
2) und 3) initialisieren außerdem einen String (der reguläre Ausdruck) welcher nicht unbedingt viel mit der Klasse A zu tun hat was ich auch unschön finde.
Was kann ich in diesem Fall noch machen?
Um etwas genauer zu werden, der reguläre Ausdruck dient dazu, den input String auf eine bestimmte Art und Weise zu splitten. Nun habe ich aber zig andere Klassen die von A erben aber keine Verwendung für diesen regulären Ausdruck haben.
Ich habe Klassen B, C, D, E, F und G welche alle von A erben.
Alle Klassen überschreiben eine Methode
Code:
String convert(String input) {
//code hier
}
Jetzt müssen B und C gebrauch von der selben RegEx machen.
Ich habe also mehrere Möglichkeiten:
1) Ich initialisiere den RegEx String in den überschriebenen Methoden in B und C
2) Ich initialisiere den RegEx String in der Superklasse A als public static Feld.
3) Ich initialisiere den RegEx String in der Superklasse A als private static Feld und biete Zugang über eine getter methode
4) ???
Ehrlich gesagt finde ich alle Möglichkeiten schlecht.
1) verstößt gegen DRY.
2) entblößt den regex im gesamten Code (welcher ziemlich groß ist)
2) und 3) initialisieren außerdem einen String (der reguläre Ausdruck) welcher nicht unbedingt viel mit der Klasse A zu tun hat was ich auch unschön finde.
Was kann ich in diesem Fall noch machen?
Um etwas genauer zu werden, der reguläre Ausdruck dient dazu, den input String auf eine bestimmte Art und Weise zu splitten. Nun habe ich aber zig andere Klassen die von A erben aber keine Verwendung für diesen regulären Ausdruck haben.