首页 > 解决方案 > Java 类/继承结构

问题描述

所以我试图确定/记住我必须使用什么类型的界面/抽象来让这个布局做我想做的事。我有两种类型的对象:

小部件和组合小部件。我希望这两个都在其他类中实现。顾名思义,ComboWidget 是一个由多个 Widget 对象组成的基类。我还希望有一些样板功能,例如 addWidget()、removeWidget()、listWigets() 等,这些功能将应用于实现 ComboWidget 的所有项目。

小部件本身的作用与由小部件的特定实例(按钮小部件、填充栏小部件等)实现的相同。

我希望能够拥有一个面板或表格,用户可以添加任何小部件或组合小部件。因此,对于所述面板,我想将 Widget 或 ComboWidget 统称为 Widget 类,并且除了实现这些的任何其他对象之外,它还允许使用 Widget 或 ComboWidget。实现这一目标的最佳方法是什么?

解释这一点的最佳方法是绘制各种图:

Widget 
     |_ ComboWidget
                  |_ TableComboWidget
                  |_ BoomHeightComboWidget
     |_ ButtonWidget
     |_ FillBarWiget
     |_ TextWidget

我希望能够制作一个显示 addWidget(Widget) 的函数,并且上述任何内容都可以作为参数放置。(除了 Widget 和 ComboWidget 本身,因为它们很可能是界面/摘要)

标签: javaoopinheritancedesign-patterns

解决方案


你刚才描述的看起来很像一个复合模式

而且我认为您的班级布局没有任何问题。您的 addWigget 方法应该像您描述的那样工作。


推荐阅读