Guten Tag,
gestern ist mir beim Schreiben eines Programms deutlich aufgefallen, dass ich ziemlich redundanten Code habe, daher möchte ich gerne in Erfahrung bringen, wie man das geschickter angeht.
Ausgangssituation:
ich habe eine Basisklasse, die 4 abstracte Methoden (Add, Delete, Edit und Exit) enthält. Des Weiteren gibt es 4 Klassen, die von der Basisklasse erben und die oben genannten Methoden implementieren müssen. Soweit so gut. Mir fällt jetzt auf, dass die Methode Delete bei allen 4 Kindklassen immer gleich abläuft und sich nur in der Konvertierung des Datentyps unterscheiden:
Die fett markierten Passagen sind die unterschiede, die von Kindklasse zu Kindklasse variieren. Das SSCs ist eine Collection. Mein Gedankengang ist, dass ich eine generische Methode erstelle, die 2 Parameter bekommt, einmal die Collection, aus der am Ende gelöscht wird und der zu konvertierende Datentyp in dem konkreten Fall SSC.
Leider habe ich keine Erfahrung mit Generic-Programming... Erste Gehversuche sind gescheitert. Vielleicht ist mein Ansatz auch verkehrt, daher dieser Thread.
Ich verwende .NET 3.5.
Um Unterstützung und Hilfe freue ich mich und bedanke mich in diesem Zuge im Voraus!
gestern ist mir beim Schreiben eines Programms deutlich aufgefallen, dass ich ziemlich redundanten Code habe, daher möchte ich gerne in Erfahrung bringen, wie man das geschickter angeht.
Ausgangssituation:
ich habe eine Basisklasse, die 4 abstracte Methoden (Add, Delete, Edit und Exit) enthält. Des Weiteren gibt es 4 Klassen, die von der Basisklasse erben und die oben genannten Methoden implementieren müssen. Soweit so gut. Mir fällt jetzt auf, dass die Methode Delete bei allen 4 Kindklassen immer gleich abläuft und sich nur in der Konvertierung des Datentyps unterscheiden:
protected override void Delete()
{
while (RowDetail.SelectedItems.Count > 0)
{
DBService.DeleteObject(RowDetail.SelectedItem);
SSCs.Remove((SSC)RowDetail.SelectedItem);
}
DBService.SaveChanges();
StatusText = Resource.deleteComplete;
}
{
while (RowDetail.SelectedItems.Count > 0)
{
DBService.DeleteObject(RowDetail.SelectedItem);
SSCs.Remove((SSC)RowDetail.SelectedItem);
}
DBService.SaveChanges();
StatusText = Resource.deleteComplete;
}
Die fett markierten Passagen sind die unterschiede, die von Kindklasse zu Kindklasse variieren. Das SSCs ist eine Collection. Mein Gedankengang ist, dass ich eine generische Methode erstelle, die 2 Parameter bekommt, einmal die Collection, aus der am Ende gelöscht wird und der zu konvertierende Datentyp in dem konkreten Fall SSC.
Leider habe ich keine Erfahrung mit Generic-Programming... Erste Gehversuche sind gescheitert. Vielleicht ist mein Ansatz auch verkehrt, daher dieser Thread.
Ich verwende .NET 3.5.
Um Unterstützung und Hilfe freue ich mich und bedanke mich in diesem Zuge im Voraus!
Zuletzt bearbeitet: