T
TheMole
Gast
Guten Morgen!
Ich habe eine Frage zu gutem Programmierstil. Angenommen, ich habe ein einfaches Datenmodell, wie in Klasse AbstractA angegeben. Ich habe nun einen Swing Client, der die Daten , also die Felder der abstrakten Oberklasse innerhalb verschiedener JLabels angzeigt. Die Klassen B,C und D haben diese Felder alle gemeinsam und zusätzlich noch ein paar Eigenschaften. Meine Frage nun:
Gibt es eine Möglichkeit dieses Datenmodell, noch etwas mehr von der Swing Ebene zu entkoppeln ? Im Moment sind ja alle Klassen indirekt JLabels, die direkt die Daten enthalten.
Gibt es hier in Bezug auf guten Programmierstil eine bessere Alternative, z.B. dass ich für die Daten ein loses Interface bereitstell, das zunächst mal überhaupt nichts von "Swing weiß"...
So etwa in der Art:
Wie sähe dass dann in Bezug auf die 4 Klassen aus, die diese Daten darstellen bzw. gibt es eine andere Möglichkeit oder welches ist der beste Stil im Hinblick auf Wiederverwendbarkeit, AOP oder was auch immer.
Bisheriger (Beispiel)Code:
Ich habe eine Frage zu gutem Programmierstil. Angenommen, ich habe ein einfaches Datenmodell, wie in Klasse AbstractA angegeben. Ich habe nun einen Swing Client, der die Daten , also die Felder der abstrakten Oberklasse innerhalb verschiedener JLabels angzeigt. Die Klassen B,C und D haben diese Felder alle gemeinsam und zusätzlich noch ein paar Eigenschaften. Meine Frage nun:
Gibt es eine Möglichkeit dieses Datenmodell, noch etwas mehr von der Swing Ebene zu entkoppeln ? Im Moment sind ja alle Klassen indirekt JLabels, die direkt die Daten enthalten.
Gibt es hier in Bezug auf guten Programmierstil eine bessere Alternative, z.B. dass ich für die Daten ein loses Interface bereitstell, das zunächst mal überhaupt nichts von "Swing weiß"...
So etwa in der Art:
Code:
public interface dataModel {
public int getA();
public void setA(int a);
public int getB();
public void setB(int b);
public int getC();
public void setC(int c);
public int getD() ;
public void setD(int d);
}
Wie sähe dass dann in Bezug auf die 4 Klassen aus, die diese Daten darstellen bzw. gibt es eine andere Möglichkeit oder welches ist der beste Stil im Hinblick auf Wiederverwendbarkeit, AOP oder was auch immer.
Bisheriger (Beispiel)Code:
Code:
class AbstractA extends JLabel {
private int a, b, c, d, id;
public AbstractA(int a, int b, int c, int d, int id) {
this.a = a;
this.b = b;
this.c = c;
this.d = d;
this.id = id;
setPreferredSize(200,200);
setBorder(new LineBorder(Color.BLACK));
}
public AbstractA(){
this(0,0,0,0,0);
}
public int getA() { return a; }
public void setA(int a) {this.a = a; }
public int getB() { return b;}
public void setB(int b) {this.b = b;}
public int getC() { return c; }
public void setC(int c) { this.c = c; }
public int getD() { return d; }
public void setD(int d) { this.d = d; }
}
class B extends AbstractA {
public B(int a, int b, int c, int d, int id){
super(a,b,c,d,id);
}
public String toString(){
return "B";
}
}
class C extends AbstractA {
public String toString(){
return "C";
}
}
class D extends AbstractA {
public String toString(){
return "D";
}
}