Hallo,
ich habe eine Klasse in der unzählige Werte gespeichert werden müssen. Nun ist das damit ein unüberschaubarer Berg an Getter- und Setter-Methoden. Um diese zu reduzieren habe ich versucht die Methoden zusammenzufassen und mithilfe eines enums auf die vorher möglichen Werte festzulegen. Da die Klasse selber nur über ein Interface angesprochen wird habe ich das enum ebenfalls dort hineingepackt. Siehe folgende Codeausschnitte.
Nun meine Fragen:
ich habe eine Klasse in der unzählige Werte gespeichert werden müssen. Nun ist das damit ein unüberschaubarer Berg an Getter- und Setter-Methoden. Um diese zu reduzieren habe ich versucht die Methoden zusammenzufassen und mithilfe eines enums auf die vorher möglichen Werte festzulegen. Da die Klasse selber nur über ein Interface angesprochen wird habe ich das enum ebenfalls dort hineingepackt. Siehe folgende Codeausschnitte.
Java:
public interface HeroStats {
public enum attribute {
COURAGE, WISDOM, INTUITION, CHARISMA, DEXTERITY, ATHLETISM, CONSTITUTION, STRENGTH
}
public int getAttribute(attribute attribute);
}
Java:
public class Hero implements HeroStats {
private HashMap<attribute, Integer> attributes;
public int getAttribute(attribute attribute) {
return attributes.get(attribute).intValue();
}
public void setAttribute(attribute attribute, int value) {
attributes.put(attribute, value);
}
}
Nun meine Fragen:
- Ist das eine schöne Lösung, oder verursacht sie Probleme?
- Kann man irgendwie das überschreiben des enums in der eigentlichen Klasse verhindern? (abstrakte Klasse?, aber man könnte dann immer noch direkt ans Interface...)
- Gibt es vielleicht eine schönere Methode?
Zuletzt bearbeitet: