Hallo Leute,
habe ein Programm das aus mehreren Klassendateien besteht. Einzelne Variablen gelten für jede Klasse!
Wie kann ich sie in jeder Klasse verwenden, ohne, dass ich sie neu aufrufe / in der main-Methode an den Konstruktor übergebe? Gibt es da eine elegantere Möglichkeit?
ich hab dazu mal ein paar Dinge gehört:
Interfaces implementieren mit public Variablen
util.properties
util.preferences
ad. Interfaces:
manche schlagen das als ganzbaren weg vor; andere bezeichnen es als Missbrauch. Irgendwelche Pros/Contras zu dem Thema?
ad. properties / preferences:
was genau ist der Unterschied (Vor-/Nachteil), wenn ich meine Einstellungen in der einen oder anderen Variante speichere?
Um die Einstellungen dann in jeder Klasse nutzen zu können, muss ich doch eh wieder in jeder Klasse ein properties.loadFromXml oder sowas aufrufen.
was haltet ihr von der Variante:
public abstract class Main {
protected Type setting1;
protected Type setting2;
protected Type setting3;
protected Type setting4;
protected Type setting5;
protected Type setting6;
protected Type setting7;
...
public Main() {
// assign settings
}
}
ab da:
public class irgendwas extends Main {
public irgendwas() {
super();
}
}
ich denke, wenn ich alle meine Klassen von Main ableite hab ich nur das Interface-Konzept auf Klassen verschoben; das is auch nicht schön, oder?!
und noch eine Frage: bei Properties/Preferences muss ich meine Werte zur Laufzeit casten, oder? Ich kann nicht definieren, dass Properties einen Integer oder einen Double oder sonstwas zurückgibt, oder? Wie speichern diese Klassen komplexe Objekte? (z.B. Properties.put(key,new LinkedList()) ...
lg, guni
habe ein Programm das aus mehreren Klassendateien besteht. Einzelne Variablen gelten für jede Klasse!
Wie kann ich sie in jeder Klasse verwenden, ohne, dass ich sie neu aufrufe / in der main-Methode an den Konstruktor übergebe? Gibt es da eine elegantere Möglichkeit?
ich hab dazu mal ein paar Dinge gehört:
Interfaces implementieren mit public Variablen
util.properties
util.preferences
ad. Interfaces:
manche schlagen das als ganzbaren weg vor; andere bezeichnen es als Missbrauch. Irgendwelche Pros/Contras zu dem Thema?
ad. properties / preferences:
was genau ist der Unterschied (Vor-/Nachteil), wenn ich meine Einstellungen in der einen oder anderen Variante speichere?
Um die Einstellungen dann in jeder Klasse nutzen zu können, muss ich doch eh wieder in jeder Klasse ein properties.loadFromXml oder sowas aufrufen.
was haltet ihr von der Variante:
public abstract class Main {
protected Type setting1;
protected Type setting2;
protected Type setting3;
protected Type setting4;
protected Type setting5;
protected Type setting6;
protected Type setting7;
...
public Main() {
// assign settings
}
}
ab da:
public class irgendwas extends Main {
public irgendwas() {
super();
}
}
ich denke, wenn ich alle meine Klassen von Main ableite hab ich nur das Interface-Konzept auf Klassen verschoben; das is auch nicht schön, oder?!
und noch eine Frage: bei Properties/Preferences muss ich meine Werte zur Laufzeit casten, oder? Ich kann nicht definieren, dass Properties einen Integer oder einen Double oder sonstwas zurückgibt, oder? Wie speichern diese Klassen komplexe Objekte? (z.B. Properties.put(key,new LinkedList()) ...
lg, guni