Java Swing:短语“赞成合成而非继承”是否适用?

时间:2012-07-10 14:41:17

标签: java swing inheritance composition

短语“赞成合成而不是继承”是否适用于Swing组件?在开始设计用户界面之前,我想收集一些关于这个主题的专业意见以及哪些代码更易于维护。

2 个答案:

答案 0 :(得分:6)

  

短语“赞成合成而非继承”是否适用于Swing组件?

我扩展Swing组件的唯一时间是我需要覆盖一个或多个方法。例如,当我想覆盖paintComponent方法时,我将扩展JPanel。

所有其他时间,我的类将包含我需要的Swing组件。这允许我分离我的类方法:

frame.getMethod();

来自Swing组件类方法:

frame.getFrame().getPreferredSize();

答案 1 :(得分:4)

试试这个..

1。我通常更喜欢使用Composition over Inheritance,如果我不使用所有的方法    一个班级或那些方法不适用于我的班级。

2。作品适用于 HAS-A 关系..

<强>例如        浴室有浴缸

   Bathroom cannot be a Tub

3。继承最佳使用,用于强制某些功能到其子类。

例如:

每个四轮车必须有转向,刹车,灯光,Windows等......

必须能够加速,应用刹车等......

因此,它的子类必须具有使其成为四轮车的功能。