mercredi 27 mai 2015
"Vererben" statischer Felder/Methoden
Posted on 08:23 by verona
Hi,
ich habe folgendes Konstrukt und bin mir nicht sicher, wie ich das am saubersten löse:
Ich habe in den Unterklassen einige Attribute, welche für sämtliche Instanzen dieser speziellen Unterklasse gleich sein sollen. Allerdings soll jede Unterklasse eigene Werte dafür haben, z.B. soll "Dragon" zwar prinzipiell über dieses Feld verfügen, aber mit komplett anderen Werten, als "Archer".
Da dieses Feld statisch ist, gehen mir aber einige Vorteile der Vererbung flöten und ich müsste es in jeder Unterklasse erneut deklarieren. Sieht für mich sehr unsauber aus und verletzt das DRY-Prinzip.
Gibt es eine Möglichkeit, wie dieses Feld zwar für alle Instanzen der jeweiligen Klasse identisch ist, ich es aber trotzdem nicht überall erneut explizit deklarieren muss?
ich habe folgendes Konstrukt und bin mir nicht sicher, wie ich das am saubersten löse:
Ich habe in den Unterklassen einige Attribute, welche für sämtliche Instanzen dieser speziellen Unterklasse gleich sein sollen. Allerdings soll jede Unterklasse eigene Werte dafür haben, z.B. soll "Dragon" zwar prinzipiell über dieses Feld verfügen, aber mit komplett anderen Werten, als "Archer".
Java Code:
-
-
public abstract class Unit {
-
private static Map<Level, Boni> boniMap;
-
}
-
-
public class Dragon extends Unit {
-
private static Map<Level, Boni> boniMap;
-
public static Map<Level, Boni> getBoniMap() {
-
return Dragon.boniMap;
-
}
-
}
-
-
public class Archer extends Unit {
-
private static Map<Level, Boni> boniMap;
-
public static Map<Level, Boni> getBoniMap() {
-
return Archer.boniMap;
-
}
-
}
Da dieses Feld statisch ist, gehen mir aber einige Vorteile der Vererbung flöten und ich müsste es in jeder Unterklasse erneut deklarieren. Sieht für mich sehr unsauber aus und verletzt das DRY-Prinzip.
Gibt es eine Möglichkeit, wie dieses Feld zwar für alle Instanzen der jeweiligen Klasse identisch ist, ich es aber trotzdem nicht überall erneut explizit deklarieren muss?
"Vererben" statischer Felder/Methoden
Categories: "Vererben" statischer Felder/Methoden
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire