GUI: Vererbung / Desingentscheidung
Verfasst: 19. März 2010 23:04
Hallo,
ich hab eine Klasse, die mir ein paar Steuerelemente (nennen wir sie class CtrlWidget) aufbaut.
Von dieser Klasse brauche ich eine erweiterte Version: vererben oder verwenden?
In der CtrlWidget wird das Steuerelement im Konstruktor aufgebaut.
Wenn ich jetzt eine CtrlAdvancedWidget baue, die abgeleitet ist, wird doch der Konstruktor von CtrlWidget implizit aufgerufen und zeichnet damit alle seine Elemente, oder? (zumindest war in meinen Tests das Layout immer zerstört). Das spricht gegen Vererbung.
Gegen Verwendung aber spricht doch, dass ich viele Routinen (z.B. sowas wie CtrlWidget::setData, switchAllOn etc) neu in CtrlAdvancedWidget implementieren muss...
Ist mein Problem klar geworden? Wie macht man sowas?
Ich glaube, ich könnte es dadurch lösen, dass ich die Steuerelemente im CtrlWidget erst explizit durch Aufruf von z.B. show() aufbaue. Die Lösung gefällt mir aber nicht.
Gruß
Mr.Green
ich hab eine Klasse, die mir ein paar Steuerelemente (nennen wir sie class CtrlWidget) aufbaut.
Von dieser Klasse brauche ich eine erweiterte Version: vererben oder verwenden?
In der CtrlWidget wird das Steuerelement im Konstruktor aufgebaut.
Wenn ich jetzt eine CtrlAdvancedWidget baue, die abgeleitet ist, wird doch der Konstruktor von CtrlWidget implizit aufgerufen und zeichnet damit alle seine Elemente, oder? (zumindest war in meinen Tests das Layout immer zerstört). Das spricht gegen Vererbung.
Gegen Verwendung aber spricht doch, dass ich viele Routinen (z.B. sowas wie CtrlWidget::setData, switchAllOn etc) neu in CtrlAdvancedWidget implementieren muss...
Ist mein Problem klar geworden? Wie macht man sowas?
Ich glaube, ich könnte es dadurch lösen, dass ich die Steuerelemente im CtrlWidget erst explizit durch Aufruf von z.B. show() aufbaue. Die Lösung gefällt mir aber nicht.
Gruß
Mr.Green