Verwaltung von Konstanten in Java
-
Hallo zusammen,
ich muss jede Menge Konstanten verwalten, die ich momentan noch alle in der Main definiere und dann über Konstruktoren weiter tief ins Programm durchreiche. Das gefällt mir aber gar nicht, doch weiß ich nicht, welcher Weg am besten ist.
Eigentlich dachte ich an eine Klasse, die ausschließlich meine Konstanten als public static verwaltet, doch habe ich in anderen Quellen gelesen, dass dies wohl nicht die beste Lösung ist.
Was würdet ihr machen?
LG, freakC++
-
Hab jetzt alle Konstanten (egal ob String oder Integer) in ein Enum gestopft.
Was haltet ihr davon :D?
-
Ich wuerde nicht fuer jeden Pipifax die Meinung anderer einholen. Und normalerweise definiere ich Konstanten dort, wo sie gebraucht werden.
-
freakC++ schrieb:
Was haltet ihr davon :D?
Nichts.
Wenn ich z.B. PI brauche, dann suche ich ein float/double in Math und nicht ein enum in AlleMeineKonstanten.
-
Es geht auch nicht um solche Konstanten, sonder eher um Pfade und Strings. klar, dass ich pi und sonstige mathematische Konstanten nicht darin ablege.
-
Okay, wenn du Konstanten hast, die absolut nicht logisch in eine Klasse passen wollen, dann finde ich eine Klasse 'Settings' oder sowas mit Konstanten nicht schlimm.
Was versprichst du dir aber von dem enum?
-
Zeig doch mal den Code, damit man sich ein besseres Bild machen kann.
-
Du baust dir eine Hierarchie auf, AbstrakteKonstante, davon erbt IntKonstante, DoubleKonstante, etc. und PiKonstante erbt dann von DoubleKonstante.
Erstellen tust du diese Konstanten dann mit einer KonstantenFactory, dann kannst du einfach
KonstantenFactory meineKonstanteFactory = new KonstantenFactory(); DoubleKonstante meinPi = meineKonstanteFactory.gibDieKonstantePi();
aufrufen. Intern wird dann die Instanz von PiKonstante gecached, so dass du nur minimalen Overhead hast. Mit dem Strategy-Pattern erlaubst du dir sogar, die Konstanten zur Laufzeit auszuwechseln.