Hallo zusammen,
ich hab eine Frage und zwar bekommt man es irgendwie hin das eine Klasse nicht immer mit new Erzeugt werden muss?
Also was ich vorhabe ist eigentlich ganz einfach. Derzeit habe ich eine Konfigurationsdatei aus dieser Lade ich mir spezielle Regex Strings. Somit habe ich eine Klasse Regex gebaut die so aussieht:
Nun möchte ich diese Regex Klasse gerne in weiteren Klasse verwenden, das Problem ist nur das die anderen Klasse ca. 1000x neu erzeugt werden um Daten zu besorgen
Damit würde die Regex Klasse 1000x neu geschaffen werden und 1000x die Konfigdatei geladen werden etc.
Die andere Klasse sieht ca so aus:
So gesehen bräuchte ich an dieser Stelle eine Statische Klasse, hab die Datenelemente auch schon static gemacht nur dann habe ich das Problem, dass ich sie nicht mit dem Konstruktor initialisiert bekomme. Dabei kann ich natürlich auch etwas falsch gemacht haben :-(
Hat jemand eine Idee wie ich das gelöst bekomme?
Am Anfang habe ich jeder Klasse eine Instanz meines KonfigurationsLesers übergeben. Doch dann musste ich in jeder Klasse immer und immer wieder die selben Sachen laden und da dachte ich wenn das wieder gekapselt wäre, würde es weniger Probleme machen vor allem wenn man etwas reparieren muss
Ich hoffe man versteht mein Problem. Falls NEIN bitte nachfragen und ich versuche es nochmal genauer zu erklären ;-)
ich hab eine Frage und zwar bekommt man es irgendwie hin das eine Klasse nicht immer mit new Erzeugt werden muss?
Also was ich vorhabe ist eigentlich ganz einfach. Derzeit habe ich eine Konfigurationsdatei aus dieser Lade ich mir spezielle Regex Strings. Somit habe ich eine Klasse Regex gebaut die so aussieht:
Java:
public class Regex {
private String s1, s2, s3, s4, etc;
private ArrayList<String> mehrRegex = new ArrayList<>();
private ConfigurationReader cr; //Diese Klasse lädt die Properties Datei
public Regex() {
try {
cr = new ConfigurationReader("regexTest.properties");
s1 = cr.getData("s1");
s2 = cr.getData("s2");
... //alle Datenelemente Initialisieren
} catch (IOException e) {
e.printStackTrace();
}
}
public boolean check...(String ...)
public boolean check...(String ...)
//weitere Methoden die meine Regex String verarbeitet
}
Nun möchte ich diese Regex Klasse gerne in weiteren Klasse verwenden, das Problem ist nur das die anderen Klasse ca. 1000x neu erzeugt werden um Daten zu besorgen
Damit würde die Regex Klasse 1000x neu geschaffen werden und 1000x die Konfigdatei geladen werden etc.
Die andere Klasse sieht ca so aus:
Java:
public class DatenSammler {
private boolean validation;
private String s1;
private Validation v = null; //Diese Klasse nutzt z. B. ebenfalls die Regex Klasse
private Regex r = new Regex();
private ArrayList<String> daten = new ArrayList<>();
public DatenSammler(String s1, boolean validation) {
if (s1 == null || s1.isBlank()) {
this.s1 = "";
this.validation = validation;
} else {
this.s1 = s1;
this.validation = validation;
disassembleInput();
if (saveInput.size() > 0)
createDatePointers();
if (validation)
v = new Validation(result);
}
}
public void sammelDaten() {
if(r.check(...))
daten.push(...);
//immer so weiter
}
So gesehen bräuchte ich an dieser Stelle eine Statische Klasse, hab die Datenelemente auch schon static gemacht nur dann habe ich das Problem, dass ich sie nicht mit dem Konstruktor initialisiert bekomme. Dabei kann ich natürlich auch etwas falsch gemacht haben :-(
Hat jemand eine Idee wie ich das gelöst bekomme?
Am Anfang habe ich jeder Klasse eine Instanz meines KonfigurationsLesers übergeben. Doch dann musste ich in jeder Klasse immer und immer wieder die selben Sachen laden und da dachte ich wenn das wieder gekapselt wäre, würde es weniger Probleme machen vor allem wenn man etwas reparieren muss
Ich hoffe man versteht mein Problem. Falls NEIN bitte nachfragen und ich versuche es nochmal genauer zu erklären ;-)