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

use*_*572 4 java inheritance swing composition

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

Gil*_*anc 6

"赞成合成而不是继承"这个短语是否适用于Swing组件?

是.

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

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

frame.getMethod();
Run Code Online (Sandbox Code Playgroud)

从Swing组件类方法:

frame.getFrame().getPreferredSize();
Run Code Online (Sandbox Code Playgroud)