OOP Ähnliche Methoden vereinfachen?

membersound

Bekanntes Mitglied
Hallo,

ich frage mich folgendes: wenn ich auf ein Objekt 2 verschiedene Methoden anwenden will, welche sich im Großteil ähneln, aber mittendrin unterscheiden: wie mache ich das am besten?
(Hintergrund: 2 Buttons, bei denen jeder vom Prinzip her das selbe machen soll, nur mit einem anderen Methodenaufruf mittendrin.)

Ich habe jetzt im Beispiel einen String erzeugt, aber das Problem ändert sich ja nicht, wenn statt des Strings jetzt vorher und nachher sich ein paar Methodenaufrufe befinden, die in beiden Actions gleich sind.

Java:
@Action
public void stringConvertToday() {
	String myString = "asd" + methodToday() + "dsa"; 
}

@Action
public void stringConvertTomorrow() {
	String myString = "asd" + methodTomorrow() + "dsa"; 
}

private String methodToday() {
//do sth, return a string
}

private String methodTomorrow() {
//do sth, return a string, but other than in methodToday()
}

Wahrscheinlich bin ich nicht der erste der sich das fragt, und es gibt sicherlich bereits eine Lösung für diese Art des Problems. Nur weiß ich nicht wonach ich suchen muss.
Danke
 
Du könntest deiner Methode Werte als Parameter mit übergeben, welcher dann in der Methode ausgewertet wird, und je nachdem, was der Wert sagt, wird etwas anderes als String zurückgegeben.
 
Es gibt auch noch das Template method pattern

Template method pattern - Wikipedia, the free encyclopedia

Java:
abstract class StringConvert{
final String doConvert(){
  return before()+main()+after();
}

private String before(){
return "asd";
}

abstract String main();

private String after(){
return "dsa";
}
}

class StringConvertToday extends StringConvert{
String main(){
return //do sth, return a string
}
}

Mal auf das einfache Beispiel angewendet. Lohnt sich aber glaube ich erst wenn das ganze etwas komplexer wird.
 

Neue Themen


Zurück
Oben