Statische Klasse: Best practice mit flags (2)

raphw

Mitglied
Hallo Forum,
ich habe mich vor einer Woche schon nach Selbigem erkundigt, aber da sich mein Problem nun noch erweitert hat, wollte ich nocheinmal nachfragen.

Ich habe eine Klasse, die eigentlich nur eine einzige wichtige Methode anbietet, als Argument verwendet sie zwei Strings und ein Flagarray (aus einem eigenen Enum-Typen). Die einzelne wichtige Methode ruft intern aber viele andere Methoden auf, da bei fast 2000 Zeilen Code das ganze sonst nicht mehr lesbar wäre. Nun habe ich ein Problem mit dem transportieren der Flags, denn das beste was mir einfallen würde wäre, das Array an jede Methode mitzugeben. Das würde ich, auf Grund der Lesbarkeit aber gerne vermeiden, da sich die Flags eines Aufrufs nie ändern.

Java:
public class MeineKlasse {

public static float meineMethode(String input1, String input2, Flags... flags) {
...
meineZweiteMethode(...);
...
}

private static int meineZweiteMethode(...) {
...
meineXXXMethode(...);
...
}

}

Ist das übergeben der Flags in wirklich jeder Funktion denn nun wirklich die beste Lösung wenn ich selbige in wirklich beinahe jeder Funktion benötige? Denn wenn ich die Flags in einer statischen Varbiable ablege, werden die Flags ja nicht automatisch zurückgesetzt, das erscheint mir auch unpraktisch. Dazu passiert bei folgendem Aufruf:

Java:
MeineKlasse.meineMethode(..., flags1);
MeineKlasse.meineMethode(..., flags2);

natürlich, dass wenn beide Methoden unter Umständen parallel ablaufen, dass die Variable flags2 auf beide Abarbeitung der Methode angewandt werden, wenn ich die statische Variable zu beginn überschreibe. Das könnte ich zwar mit ThreadLocal verhindert, aber auch das erscheint mir nicht optimal.

Nun geht mein Problem aber noch weiter: Ich würde die Klasse gerne sowohl statisch als auch nicht-statisch anbieten. Also, dass ich mit:

Java:
MeineKlasse foo = new MeineKlasse(flags1);
foo.meineMethode(...);

MeineKlasse.meineMethode(..., flags1);

in beiden Varianten das Gleiche heraus bekomme. Das würde ja grundsätzlich mit überladen funktionieren, allerdings geht das nicht, wenn bis auf das Atribut "static" die Methodenköpfe identisch sind. (Ich will die Flags weiterhin zulassen, um eine vorübergehende Änderung der Standardkonfiguration zuzulassen. Ist eine solche Umsetzung in Java denn überhaupt vorgesehen?

Danke für die Hilfe und viele Grüße, Rafael
 
S

SlaterB

Gast
ich glaube ich habe zur Parameterübergabe alles gesagt was zu sagen ist
http://www.java-forum.org/allgemeine-java-themen/107947-statische-klasse-best-practice-flags.html

und meiner Interpretation nach hat sich dein Problem in der Hinsicht um keinen Millimeter erweitert, dieselbe Frage nochmal..

edit:
am ehesten vielleicht nochmal der deutliche Hinweis, dass du
String input1, String input2
in einem Objekt InputData modellieren kannst, und dann dieses eine Objekt durch alle Methoden durchreichen, da können auch Zwischenwerte der Berechnung gespeichert werden usw.,

wenn dann Flags... flags ein weiteres Attribut von InputData ist, ist das eine minimale Änderung



------

statisch + nicht-statisch zusammmen gleich ergibt keinen Sinn, braucht man auch nie,
verwende nur die statische, oder unterschiedliche Methodennamen
 
Zuletzt bearbeitet von einem Moderator:

FArt

Top Contributor
Mir scheint hier liegt eher ein suboptimales Design als Problem vor. Fast jede Funktion benötigt alle Flags? Dann kannst du gleich eine Klasse mit einer großen Main-Methode schreiben...

Anscheinend handelt es sich um globale Konfigurationen, die sich zur Laufzeit ändern können? Nutze einen Service, an dem sich jede Klasse die passende Konfiguration erfragen kann. Wenn der synchronisiert ist, gibt es keine Probleme bzgl. konkurrierender Zugriffe. Evtl. ist es ja auch nötig, dass verschiedene Beteiligte über Änderungen an einzelnen Konfigurationen benachrichtig werden (mittels Observer).

"ein Array von Flags"... isch krisch Plaque...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Klasse rausfinden, an der eine statische Methode aufgerufen wurde ? Allgemeine Java-Themen 10
temi Private statische Hilfsmethoden Allgemeine Java-Themen 33
T statische Variable und nicht-statische Methode Allgemeine Java-Themen 2
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
P "Overriden statische Methode" Statische Methode die vererbt wird Allgemeine Java-Themen 5
N Threads statische Methoden in Threads Allgemeine Java-Themen 5
M Zeiger auf statische Variable Allgemeine Java-Themen 1
S Kapselung Statische Helper Klassen Allgemeine Java-Themen 5
C Classloading und statische Variablen Allgemeine Java-Themen 2
faetzminator statische Variablen in Interface - Vererbung? Allgemeine Java-Themen 9
D Wann sollte ich statische Methoden und Variablen benutzen? Allgemeine Java-Themen 44
J Statische Variablen, Threadübergreifend. Allgemeine Java-Themen 4
R statische initialisierer Allgemeine Java-Themen 7
S statische Methoden und Vererbung Allgemeine Java-Themen 6
M Zwingen eine statische Methode zu importieren Allgemeine Java-Themen 5
heart_disease Designfrage: Statische Konfigurationsklasse Allgemeine Java-Themen 10
S statische Interfaces..? Allgemeine Java-Themen 6
M Wann Membermethoden, wann statische Utility-Methoden? Allgemeine Java-Themen 24
S Innere Klassen und die statische Methode access$x Allgemeine Java-Themen 5
S Statische Methoden in abstrakte Klassen deklarieren? Allgemeine Java-Themen 17
M Paralleler Zugriff auf statische Methode Allgemeine Java-Themen 5
J Statische Methoden in Interfaces? Allgemeine Java-Themen 10
F Statische Methode in abstrakter Superklasse definieren Allgemeine Java-Themen 4
B Statische Methode? Komisch. Allgemeine Java-Themen 5
G Wann statische Methoden, statische Attributen? Allgemeine Java-Themen 7
G Statische Methoden erzwingen Allgemeine Java-Themen 2
H Zugriff auf statische Variable synchronisieren Allgemeine Java-Themen 4
A [SOLVED] Classpath und statische Variablen Allgemeine Java-Themen 6
S Tiefe Kopie einer Baumstruktur als statische Methode Allgemeine Java-Themen 8
M statische Methode per reflection aufrufen Allgemeine Java-Themen 2
M statische regex und vergleiche oder immer wieder compilen Allgemeine Java-Themen 2
S Statische Methode oder nicht? Allgemeine Java-Themen 5
T in einer statischen Methode ein nicht statische Aufrufen Allgemeine Java-Themen 5
D Statische, generische Methode will nicht. Allgemeine Java-Themen 2
H Zugriff auf statische Methode durch mehrere User Allgemeine Java-Themen 19
S Auf statische Funktionen mit Java Reflections zugreifen Allgemeine Java-Themen 3
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
EinNickname9 Best Practice Singleton und Singleton mit Instanz zu anderer Klasse -Pattern Allgemeine Java-Themen 30
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
missy72 Klassen Eigene Klasse MessageWindow ähnlich der Alert Klasse Allgemeine Java-Themen 2
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
L Die abzuleitende Klasse als Parameter übergeben Allgemeine Java-Themen 4
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
C Klasse mit Mockito simulieren Allgemeine Java-Themen 9
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
S static in Interface und Klasse Allgemeine Java-Themen 2
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
D javassist API Klasse in MethodCall ermitteln Allgemeine Java-Themen 8
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
J Builder Klasse mit Lombok bauen Allgemeine Java-Themen 2
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
M [SOAP] - Klasse aus WSDL ausschließen Allgemeine Java-Themen 2
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
X Klassen Klasse BreakIterator Allgemeine Java-Themen 6
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
E Socket Dynamische Klasse von ObjectOutputStream lesen. Allgemeine Java-Themen 8
M Matcher-Klasse findet match nicht Allgemeine Java-Themen 6
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
S Seltsames Ergebnis mit Date-Klasse Allgemeine Java-Themen 6
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
Neoline Klassen Singleton Klasse buchmanager Allgemeine Java-Themen 19
M Kapselung Modellierung von Intervallen: Klasse Interval Allgemeine Java-Themen 4
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
ReinerCoder Klasse kann nicht public deklariert werden Allgemeine Java-Themen 2
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
X Klassen File-Klasse wird als Directory markiert Allgemeine Java-Themen 8
S Methoden Liste soll Methode aus innerer Klasse aufrufen Allgemeine Java-Themen 4
J IndexOutOfBoundsException bei der Nutzung der Klasse Message von mime4j Allgemeine Java-Themen 5
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
M Was geschieht mit Java-Klasse, die aus ArrayList entfernt wird? Allgemeine Java-Themen 10
perlenfischer1984 Lombok Builder soll andere Klasse bauen Allgemeine Java-Themen 4
perlenfischer1984 Mit Lombok Builder Felder in Super Klasse füllen Allgemeine Java-Themen 12
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
K Best Practice Auf die Klasse zugreifen im erzeugten ActionListener Allgemeine Java-Themen 2
K Mit Button neue Klasse öffnen Allgemeine Java-Themen 9
J Reflection mit Klasse und Subklasse Allgemeine Java-Themen 11
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
magdaStone Logikproblem Umschalten von booleans in anderer Klasse Allgemeine Java-Themen 7
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben