过度使用继承?
Java Swing 和 Java2D 在很大程度上依赖于继承。大多数人告诉我应该尽可能避免继承,只在必要时才使用它。那么在 Java2D 和 Java Swing 中广泛使用 Inheritance 是否合理?
适配器模式
我听到过很多对适配器模式的赞美,也听到过很多批评。然而,我从所有这些中收集到的是,只有在正确的地方使用适配器模式才被认为是好的设计。不相关地使用适配器模式会导致阅读您的代码的人皱眉。在两个 Java API 中是否正确且相关地使用了适配器模式?
单例
这两种 API 也倾向于使用相当数量的单例。这样好吗?
问题
那么,Java2D Api 和 Java Swing 是面向对象编程接口(interface)的一个很好的例子吗?我应该在我的代码中使用他们的技术吗?
最佳答案
我对此不确定,但我可以提供一些想法:
继承:假设您更喜欢在 Swing 中使用接口(interface)和组合而不是通过继承重用,那么您将需要做大量的转发(
Component
和JComponent
有几十种方法)适配器模式:见上文
单例:它们适用于为系统中真正独特的部分建模(我同意
java.awt.Desktop
可以作为单例实现——即使它使用一个工厂方法)总体设计:您可能会选择以结果来判断事物 -- Swing 健壮、可扩展且使用广泛。
关于java - Java2D 和 Swing 是 Good Use OOP 的例子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9451311/