Hallo zusammen,
ich würde mir gern eine Klasse schreiben, mit der ich Funktionen "verketten" kann, um beim Programmieren natürlichere Ausdrücke verwenden zu können. Also ein einfaches Beispiel wäre sowas wie
Leider fehlt mir für sowas ein wenig das theoretische Wissen. Meine Idee bisher ist, dass ich eine Klasse mit einer inneren Klasse schreibe, die dann als Rückgabetyp der ersten Funktion ausgegeben wird, sodass man ab da die zweite Funktion benutzen kann:
Dazu habe ich jetzt diese Fragen:
- Ist das ein guter Weg, das zu lösen, oder gibt es da andere Vorgehensweisen? Wonach müsste ich bei google Suchen, um sowas zu finden? Bei meinen Versuchen finde ich immer nur alles mögliche zu Vererbung und Interfaces und so.
- Ist sichergestellt, dass der Inhalt von string1 beim Aufruf von second() immer richtig ist? Bei meinen Versuchen hat es immer funktioniert, aber im Prinzip erstelle ich ja in der first() Funktion ein neues Objekt von SecondStage(). Wird dieses neue Objekt wirklich in allen Lebenslagen mit demselben schon bestehenden Objekt von Stage zusammenhängen?
- Es soll natürlich am besten gar nicht möglich sein, ein alleinstehendes SecondStage Objekt zu bekommen. Am liebsten wäre mir sogar, wenn man sowas wie Object object = stage.first("Hallo"); gar nicht machen kann. Kann man das irgendwie verhinden?
ich würde mir gern eine Klasse schreiben, mit der ich Funktionen "verketten" kann, um beim Programmieren natürlichere Ausdrücke verwenden zu können. Also ein einfaches Beispiel wäre sowas wie
Java:
stageObject.first("Hallo").second("Welt!");
Leider fehlt mir für sowas ein wenig das theoretische Wissen. Meine Idee bisher ist, dass ich eine Klasse mit einer inneren Klasse schreibe, die dann als Rückgabetyp der ersten Funktion ausgegeben wird, sodass man ab da die zweite Funktion benutzen kann:
Java:
public class Stage {
private String string1 = "";
private class SecondStage {
private SecondStage() {}
public void second(String string) {
System.out.println(string1 + " " + string);
}
}
public SecondStage first(String string) {
string1 = string;
return new SecondStage();
}
}
Dazu habe ich jetzt diese Fragen:
- Ist das ein guter Weg, das zu lösen, oder gibt es da andere Vorgehensweisen? Wonach müsste ich bei google Suchen, um sowas zu finden? Bei meinen Versuchen finde ich immer nur alles mögliche zu Vererbung und Interfaces und so.
- Ist sichergestellt, dass der Inhalt von string1 beim Aufruf von second() immer richtig ist? Bei meinen Versuchen hat es immer funktioniert, aber im Prinzip erstelle ich ja in der first() Funktion ein neues Objekt von SecondStage(). Wird dieses neue Objekt wirklich in allen Lebenslagen mit demselben schon bestehenden Objekt von Stage zusammenhängen?
- Es soll natürlich am besten gar nicht möglich sein, ein alleinstehendes SecondStage Objekt zu bekommen. Am liebsten wäre mir sogar, wenn man sowas wie Object object = stage.first("Hallo"); gar nicht machen kann. Kann man das irgendwie verhinden?