据说组合优于继承。然而每一个开源的GUI工具包都使用了继承来画窗口、标签、框架、按钮等部件。我检查了Qt、wxWidgets和GTK+。有没有一个GUI工具包(用任何语言编写),使用组合而不是继承来分离各种部件?
你在使用这些GUI工具包时遇到了什么问题?
我认为,它们都派生自一个共同的Widget基类,因此它们都公开了最小的接口。因此,您可以编写可以与任何SpecializedWidgetType一起使用的代码。我认为这是继承的一个很好的用法..
更喜欢组合而不是继承..但不要把组合硬塞到继承的位置上。规则/指南总有例外。