Aloha , ich bin in letzer Zeit immer wieder über die tatsache gestolpert das in der Standard API immer folgende Konstrukte notwendig sind um z.B bei einem JDialog Komponenten einen Rahmen zu setzen
hier wird erst über einen getter das Root-Element geholt und dann (indirekt) darüber auf dessen Setter zugegriffen .
Ich meine Irgendwo mal gelesen zu haben das dies aber schlechter Stil ist, und man das ganze lieber über delegation lösen sollte, sprich in der Komponenten oder dem Root Element die Methode so überschreiben / und oder anbieten, das diese dann an die gewünschte Komponenten Delegiert ?
Ich habe es bislang immer so realisiert das ich genau dies umgesetzt habe, sprich wenn ich eine eigene Klasse hatte z.B (eine die ein UI darstellt) habe ich dort direkt Methoden angeboten die an die jeweilige Componente Delegieren, ( dies steigert natürlich die Anzahl an Methoden, führt allerdings zu kürzeren Aufrufhierarchien und vermeidet Verkettung von Punkt-Operatoren)
hier ist z.B contentPane ein JPanel und die Gui hält (als Root-Element) eine Referenz auf ihr Child
Was oder wie ist es denn nun am Sinnvollsten ? Stilistisch am schönsten ?
Was ist Konzeptionell richtig ?
Mit erstere, Lösungsansatz spart man sich natürlich die Methoden in den Superklassen / und oder RootElementen.
Haut mal raus was ihr davon haltet
Java:
dialog.getContentPane().setBorder(xxx);
hier wird erst über einen getter das Root-Element geholt und dann (indirekt) darüber auf dessen Setter zugegriffen .
Ich meine Irgendwo mal gelesen zu haben das dies aber schlechter Stil ist, und man das ganze lieber über delegation lösen sollte, sprich in der Komponenten oder dem Root Element die Methode so überschreiben / und oder anbieten, das diese dann an die gewünschte Komponenten Delegiert ?
Ich habe es bislang immer so realisiert das ich genau dies umgesetzt habe, sprich wenn ich eine eigene Klasse hatte z.B (eine die ein UI darstellt) habe ich dort direkt Methoden angeboten die an die jeweilige Componente Delegieren, ( dies steigert natürlich die Anzahl an Methoden, führt allerdings zu kürzeren Aufrufhierarchien und vermeidet Verkettung von Punkt-Operatoren)
hier ist z.B contentPane ein JPanel und die Gui hält (als Root-Element) eine Referenz auf ihr Child
Java:
public void addContent(JComponent comp){
contentPane.add(comp);
}
Was oder wie ist es denn nun am Sinnvollsten ? Stilistisch am schönsten ?
Was ist Konzeptionell richtig ?
Mit erstere, Lösungsansatz spart man sich natürlich die Methoden in den Superklassen / und oder RootElementen.
Haut mal raus was ihr davon haltet
Zuletzt bearbeitet: