Hallo,
ich habe mal eine Frage rein zur Umsetzung von bestimmten Sachverhalten.
Ich habe ein Programm welches Aufgaben je nach Funktion in eigene Klassen auslagert. Diese Klassen sind aktuell noch so angelegt, das diese einfach nur statische Methoden verwenden. Zum Beispiel würde theoretisch eine Klasse so aussehen:
public class FunktionssammlungA{
public static void gibMeldungAus(String meldung){
System.out.println(meldung);
}
public static String erweiterDenString(String txt){
return "--" + txt + "--";
}
}
Der Code ist natürlich stark vereinfacht.
Jetzt habe ich was von Singleton gelesen. Bein Singelton haben sich aber in den Beiträgen die Geister gestritten, ob das Sinn oder Unsinn ist so vor zu gehen. Des weiteren kann man in Interface keine statischen Methoden definieren, welche man ja bei Singelton braucht (getInstance()).
Warum ich jetzt an den Punkt komme das wieder anzugreifen ist, dass ich teile dieser Funktionssammlungen so auslagern will, das die Funktionen an sich zwar vorgegeben (Methodennamen und Parameter) sind aber der Inhalt/Logik je nach Implementierung unterschiedlich sein kann (Plugin-Prinzip). Hier kommt ganz klar das Stichwort “Interface” zu tragen.
Ich möchte vermeiden, das von meinen “Funktionssammlungen” mehr als eine Instanz erzeugt wird (Singelton), es aber zugleich möglich sein soll, das ich für diese “Funktionssammlungen” ein Interface definieren kann.
Warum bestehe ich auf die einmalige Instanzierung. Für die Instanzierung müssen bei mir immer zahlreiche Parameter und Informationen mit übergeben werden, welche Teilweise auch nur bei Programmstart bekannt sind. (diesen Sachverhalt habe ich im oberen Beispiel der Einfachhalber weg gelassen) Ich will unter allen Umständen vermeiden, das ich zum Funktionsaufruf jedes mal eine Instanz erstellen muss, das wäre zu viel Offset.
Ich muss auch noch mal ganz klar sagen, das bei den “Formelsammlungen” keine Objekt individuellen Informationen gespeichert werden. Alle privaten oder öffentlichen Variablen müssen bei allen Instantzen der Klasse identisch sein.
Welche Möglichkeiten habe ich in Java, um mein Vorhaben Java-Konform abbilden zu können?
Danke für eure Hilfe
Grüße Hans