Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > de.comp.lang.java > #13350

Re: Was ist an dieser Klasse falsch?

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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