Java类/继承结构

时间:2019-03-29 13:57:29

标签: java oop inheritance design-patterns

因此,我试图确定/记住必须使用哪种类型的界面/抽象才能使此布局执行我想要的操作。我有两种类型的对象:

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

窗口小部件本身将与将由窗口小部件的特定实例(按钮窗口小部件,填充栏窗口小部件等)实现的功能相同。

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

解释此问题的最佳方法是绘制图形:

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

我希望能够创建一个表示addWidget(Widget)的函数,并且以上任何内容都可以作为参数放置。 (Widget和ComboWidget本身除外,因为它们很可能是界面/抽象)

2 个答案:

答案 0 :(得分:1)

您刚才描述的内容很像Composite Pattern

我看不到您的课程布局有什么问题。 您的addWigget方法应该可以像您描述的那样工作。

答案 1 :(得分:1)

研究Java AWT class hierarchy。它具有您要寻找的结构-shared_preload_libraries = 'pipelinedb,pipeline_kafka' pipeline_kafka.broker_version = '1.0.0' pipeline_kafka.consumer_config = 'security.protocol=SASL_PLAINTEXT,sasl.mechanisms=PLAIN,sasl.username=USER,sasl.password=PASSWORD' 类充当每个AWT组件的基类,而Component相当于您的Container