【发布时间】:2010-06-15 13:10:10
【问题描述】:
据说组合优于继承。然而,每一个开源 GUI 工具包都对绘制的小部件(窗口、标签、框架、按钮等)使用继承。我检查了 Qt、wxWidgets 和 GTK+。是否有使用组合而不是继承来分离各种小部件的 GUI 工具包(以任何语言编写)的示例?
【问题讨论】:
标签: user-interface inheritance
据说组合优于继承。然而,每一个开源 GUI 工具包都对绘制的小部件(窗口、标签、框架、按钮等)使用继承。我检查了 Qt、wxWidgets 和 GTK+。是否有使用组合而不是继承来分离各种小部件的 GUI 工具包(以任何语言编写)的示例?
【问题讨论】:
标签: user-interface inheritance
您在使用这些 GUI 工具包时遇到了什么问题?
我认为,它们派生自一个通用的 Widget 基类,因此它们都公开了一个最小接口。因此,您可以编写适用于任何 SpecializedWidgetType 的代码。我认为这是继承的一个很好的用途..
Prefer composition to inheritance.. 但不要在继承是正确答案的情况下强行组合。规则/准则总是有例外。
【讨论】: