过度使用继承?
Java Swing和Java2D在很大程度上依赖于继承。大多数人告诉我,我应该尽可能地避免继承,并且只在必要时使用它。那么在Java2D和Java Swing中广泛使用继承是否合理?
适配器模式
我听到了很多关于适配器模式的赞誉,我听到了很多批评。然而,我从所有这些中收集到的是,如果在正确的位置使用,适配器模式仅被认为是好的设计。适配器模式的不相关使用会导致人们阅读您的代码以显示皱眉。适配器模式是否在两个Java API中正确且相关地使用?
单身
这两种API也倾向于使用相当数量的单身人士。这好吗?
问题
那么,Java2D Api和Java Swing是面向对象编程接口的一个很好的例子吗?我应该在我的代码中使用他们的技术吗?
答案 0 :(得分:2)
我对此并不确定,但我可以提出一些想法:
继承:假设您优先使用接口和组合而不是Swing中的重用继承,那么您需要进行大量的转发(Component
和JComponent
几十种方法)
适配器模式:见上文
单身人士:他们适合模拟真正独特的系统部分(我同意java.awt.Desktop
可以作为单身实现 - 即使它使用工厂方法)
整体设计:您可以选择按结果来判断事物 - Swing功能强大,可扩展且广泛使用。
答案 1 :(得分:1)
我的一位与Swing合作的朋友不断抱怨这是一个抽象的泥沼。在运行时确定对象的行为涉及拼凑一个奇怪的继承功能拼贴。从我所看到的,我倾向于同意。
答案 2 :(得分:-1)