G
Gelöschtes Mitglied 68249
Gast
Hi, ich habe eine kleine Klasse für Konfigurationen
In dieser Form speichere ich die Konfiguration für viele verschieden Systeme. Wie man sieht sind ein paar Parameter bei allen Systemen gleich und ein paar kommen nur bei einigen wenigen Systemen vor, z.B. hat ein System eine Datenbank, das würde ich dann über ein get("DATABASE") abrufen.
Aktuell speichere ich aber die Daten in der Datenbank einigermaßen typsicher ab und wollte das auch in der Klasse repräsentieren.
Dabei habe ich mir gedacht, dass es vielleicht Sinn machen würde von der Klasse ab zu leiten und als Kind dann eine Klasse zu haben, die Datenbanken kennt.
Aber macht das Sinn? Dann müsste ich doch in meinem Code immer darauf hinweisen, dass ich jetzt keine ReferenceSystemConfig habe, sondern eine ReferenceSystemConfigWithDatabase oder so. D.h. ich müsste in meinen Methoden dann von ReferenceSystemConfig auf eines ihrer Kinder casten, damit ich dann eine Methode getDatabase verwenden kann. Oder habe ich gerade einen Haken im Kopf und denke falsch?
Java:
public class ReferenceSystemConfig {
private Map<String,String> fieldMapping;
private String username;
private String password;
private boolean ssl;
private String server;
private Integer port;
private Map<String, Object> misc;
@SuppressWarnings("unchecked")
public ReferenceSystemConfig(Map<String, Object> configMap) {
misc = new HashMap<>();
for(String parameter : configMap.keySet()) {
Object value = configMap.get(parameter);
switch(parameter) {
case "FIELDMAPPING":
fieldMapping = (Map<String, String>) value;
break;
case "USER":
username = (String) value;
break;
case "PASSWORD":
password = (String) value;
break;
case "SSL":
ssl = (Boolean) value;
break;
case "SERVER":
server = (String) value;
break;
case "PORT":
port = (Integer) value;
break;
default:
misc.put(parameter, value);
}
}
}
public Object get(String key) {
if(misc.containsKey(key)) {
return misc.get(key);
}
return null;
}
public Map<String,String> getFieldMapping() { return fieldMapping; }
public String getUsername() { return username; }
public String getPassword() { return password; }
public boolean isSsl() { return ssl; }
public String getServer() { return server; }
public Integer getPort() { return port; }
public Map<String, Object> getMisc() { return misc; }
}
In dieser Form speichere ich die Konfiguration für viele verschieden Systeme. Wie man sieht sind ein paar Parameter bei allen Systemen gleich und ein paar kommen nur bei einigen wenigen Systemen vor, z.B. hat ein System eine Datenbank, das würde ich dann über ein get("DATABASE") abrufen.
Aktuell speichere ich aber die Daten in der Datenbank einigermaßen typsicher ab und wollte das auch in der Klasse repräsentieren.
Dabei habe ich mir gedacht, dass es vielleicht Sinn machen würde von der Klasse ab zu leiten und als Kind dann eine Klasse zu haben, die Datenbanken kennt.
Aber macht das Sinn? Dann müsste ich doch in meinem Code immer darauf hinweisen, dass ich jetzt keine ReferenceSystemConfig habe, sondern eine ReferenceSystemConfigWithDatabase oder so. D.h. ich müsste in meinen Methoden dann von ReferenceSystemConfig auf eines ihrer Kinder casten, damit ich dann eine Methode getDatabase verwenden kann. Oder habe ich gerade einen Haken im Kopf und denke falsch?