Hallo zusammen,
ich habe eine Frage welche Implementierung eleganter ist.
Und zwar habe ich grundsätzlich eine Superklasse die mehrere Attribute und eine Methode hat. Von dieser Superklasse leite ich mehrere Subklassen ab wobei zu den Attributen noch welche hinzugefügt werden, die Methode wird für jede Subklasse angepasst. Da das Programm eigentlich nur mit String arbeitet habe ich eine Klasse mit Definitionen erstellt damit man einen schnellen überblick erhält.
Definitionen (Auszug):
Nun ist die Frage ob ich die Attribute die ich der Subklasse hinzufüge noch in den Konstruktor packe.... z.B.
Oder in der Subklasse direkt die "sd_"-Attribute nutze ohne diese im Konstruktor anderen Variablen zuzuweisen. In der Methode selbst könnte ich ja einfach die in der Definitionen erstellen Variablen nutzen. Was ist hier eleganter? Wenn ich die Attribute nicht im Konstruktor erwähne gehören sie sozusagen auch nicht zum dem jeweiligen Objekt sehe ich das richtig?
Danke im voraus
Martin
ich habe eine Frage welche Implementierung eleganter ist.
Und zwar habe ich grundsätzlich eine Superklasse die mehrere Attribute und eine Methode hat. Von dieser Superklasse leite ich mehrere Subklassen ab wobei zu den Attributen noch welche hinzugefügt werden, die Methode wird für jede Subklasse angepasst. Da das Programm eigentlich nur mit String arbeitet habe ich eine Klasse mit Definitionen erstellt damit man einen schnellen überblick erhält.
Definitionen (Auszug):
Code:
// Steckdosen
public final static String sd_typ = "Switch";
public final static String sd_name = "sd";
public final static String sd_namehome = "sdhome";
public final static String sd_name2 = "onOff";
public final static String sd_label = "Steckdose";
public final static String sd_labelhome = "Steckdose Homematic";
public final static String sd_mapping = "";
public final static String sd_channel = "nutzerwelten:sd:a651b2fa";
public final static String sd_channel2 = "onOff";
public final static String sd_channel2home = "homematic:HM-ES-PMSw1-Pl:4c27bc95:NEQ0386523:1#STATE";
public final static String sd_dateiname = "NW_Steckdosen.items";
Nun ist die Frage ob ich die Attribute die ich der Subklasse hinzufüge noch in den Konstruktor packe.... z.B.
Code:
private String labelhome;
private String channel2home;
private String namehome;
private int homeAnzahl;
public Steckdosen(int Anzahl, int homeAnzahl) {
super(sd_typ, sd_name, sd_name2, sd_label, sd_mapping, sd_channel, sd_channel2, Anzahl, sd_dateiname);
this.labelhome=sd_labelhome;
this.channel2home=sd_channel2home;
this.namehome=sd_namehome;
this.homeAnzahl=homeAnzahl;
}
Oder in der Subklasse direkt die "sd_"-Attribute nutze ohne diese im Konstruktor anderen Variablen zuzuweisen. In der Methode selbst könnte ich ja einfach die in der Definitionen erstellen Variablen nutzen. Was ist hier eleganter? Wenn ich die Attribute nicht im Konstruktor erwähne gehören sie sozusagen auch nicht zum dem jeweiligen Objekt sehe ich das richtig?
Danke im voraus
Martin