Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > de.comp.lang.java > #13350
| From | Patrick Roemer <sangamon@netcologne.de> |
|---|---|
| Newsgroups | de.comp.lang.java |
| Subject | Re: Was ist an dieser Klasse falsch? |
| Date | 2020-07-30 14:22 +0200 |
| Organization | news.netcologne.de |
| Message-ID | <rfue1v$lc0$1@newsreader4.netcologne.de> (permalink) |
| References | <hofcgiFjp5jU1@mid.individual.net> <hofcsgFk3c6U2@mid.individual.net> <rfu129$1lif$1@news-cypress.fernuni-hagen.de> <hofh3rFkljtU2@mid.individual.net> |
Responding to Peter Heitzer: > Der Grund für die Ableitung der Properties Klasse ist in einem Programm von mir > gegründet. Es ist ein kleiner Webservice, der sowohl als Produktivversion als auch > als Testversion läuft. Welche Version es ist, wird beim Start durch eine Systemvariable > festgelegt, welche als Präfix dient. > Da der Service seine Parameter aus einer Datei liesst, einhält diese jeweils > einen Eintrag für Produktion und Test, z.B. Serverport=xxx bzw. TestServerport=yyy > Im eigentlichen Programm brauche ich dann keine Fallunterscheidung, da meine abgeleitete > Properties Klasse jeweils das passende Präfix vor den Namen der Property setzt. Warum nicht einfach zwei verschiedene Dateien, von denen je nach Wert der Umgebungsvariablen die passende geladen wird? Alternativ eine Bibliothek verwenden, die unterschiedliche Konfigurationsblöcke bzw. -hierarchien innerhalb einer Datei explizit unterstützt, z.B. https://github.com/lightbend/config Falls man doch lieber selber basteln will: Das Design der Properties-Klasse ist eh schon fritte, alleine dadurch, dass sie von Hashtable ableitet. Wenn man nur #getProperty() überschreibt, macht man sich recht sicher irgendwo den Contract noch weiter kaputt - zusätzlich zu klassischen Problemen beim Ableiten von konkreten Klassen wie im OP. Besser also eine Wrapperklasse mit einer minimalen API, die auf die konkreten Anforderungen zugeschnitten ist, wie von Michael vorgeschlagen. Grundsätzlich sowieso: Favor composition over inheritance. [1] Viele Grüße Patrick [1] https://en.wikipedia.org/wiki/Composition_over_inheritance
Back to de.comp.lang.java | Previous | Next — Previous in thread | Next in thread | Find similar
Re: Was ist an dieser Klasse falsch? "Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> - 2020-07-30 07:58 +0000
Re: Was ist an dieser Klasse falsch? Michael Paap <feunews@mpaap.de> - 2020-07-30 10:40 +0200
Re: Was ist an dieser Klasse falsch? "Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> - 2020-07-30 09:10 +0000
Re: Was ist an dieser Klasse falsch? Michael Paap <feunews@mpaap.de> - 2020-07-30 13:05 +0200
Re: Was ist an dieser Klasse falsch? Patrick Roemer <sangamon@netcologne.de> - 2020-07-30 14:22 +0200
Re: Was ist an dieser Klasse falsch? "Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> - 2020-07-30 13:24 +0000
Re: Was ist an dieser Klasse falsch? Johannes Freiberger <nomail@space.invalid> - 2021-04-09 01:53 +0200
Re: Was ist an dieser Klasse falsch? Johannes Freiberger <nomail@space.invalid> - 2021-04-09 03:04 +0200
Re: Was ist an dieser Klasse falsch? Johannes Freiberger <nomail@space.invalid> - 2021-04-09 03:12 +0200
csiph-web