4

Does the phrase "favor composition over inheritance" apply to Swing components? I'd like to gather some professional opinions about the subject and which code is easier to maintain before I go ahead and design a UI.

4

2 回答 2

6

“优先组合胜过继承”这句话是否适用于 Swing 组件?

是的。

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

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

frame.getMethod();

来自 Swing 组件类方法:

frame.getFrame().getPreferredSize();
于 2012-07-10T15:00:58.870 回答
4

尝试这个..

1.如果我不使用类的所有方法或者这些方法不适用于我的类,我通常更喜欢使用组合而不是继承。

2.组合与HAS-A关系一起工作。

例如: 浴室有浴缸

   Bathroom cannot be a Tub

3.最好使用继承,当它用于将某些功能强制到其子类时。

例如:

每辆四轮车都必须有转向、刹车、灯、车窗等……

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

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

于 2012-07-10T14:48:28.173 回答