短语“赞成合成而不是继承”是否适用于Swing组件?在开始设计用户界面之前,我想收集一些关于这个主题的专业意见以及哪些代码更易于维护。
答案 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等......
必须能够加速,应用刹车等......
因此,它的子类必须具有使其成为四轮车的功能。