Hallo zusammen,
ich habe folgendes Problem:
Ich möchte mehrere Algorithmen implementieren, die sich in der Grundinstanz ähneln, aber im eigentlich Ablauf halt Unterschiede haben. Meine bisherige Design-Idee war folgende:
Ich hab eine abstrakte Klasse, in der ich die Methoden implementiere, die für alle drei Algorithmen gleich sind und definiere die abstrakten Methoden, die dann anschließend in den einzelnen Klassen implementiert werden müssen. Das Problem ist, dass meine Klassen zwar letzendlich die selbe Methode anwenden soll, aber unterschiedliche Parameter benötigen.
Beispiel:
Wenn ich das so machen würde, müsste ich ja in jedem Algo beide run-Methoden implementieren, was ja letztendlich quatsch wäre, da eine run-Methode nicht wirklich genutzt werden kann.
Wie kann ich am besten dieses Problem lösen?
ich habe folgendes Problem:
Ich möchte mehrere Algorithmen implementieren, die sich in der Grundinstanz ähneln, aber im eigentlich Ablauf halt Unterschiede haben. Meine bisherige Design-Idee war folgende:
Ich hab eine abstrakte Klasse, in der ich die Methoden implementiere, die für alle drei Algorithmen gleich sind und definiere die abstrakten Methoden, die dann anschließend in den einzelnen Klassen implementiert werden müssen. Das Problem ist, dass meine Klassen zwar letzendlich die selbe Methode anwenden soll, aber unterschiedliche Parameter benötigen.
Beispiel:
Java:
public abstract class AbstractAlgo {
//Algo 1 benötigt zum Ausführen einen String und einen integer-Wert
public void run(String x, int i);
//Algo 2 und Algo 3 benötigen lediglich nur einen String
public void run (String x);
public String getName(){
...
}
}
Wenn ich das so machen würde, müsste ich ja in jedem Algo beide run-Methoden implementieren, was ja letztendlich quatsch wäre, da eine run-Methode nicht wirklich genutzt werden kann.
Wie kann ich am besten dieses Problem lösen?