【问题标题】:When to subclass AbstractBorder and when to implement the Border interface?何时继承 AbstractBorder 以及何时实现 Border 接口?
【发布时间】:2012-03-12 13:04:04
【问题描述】:

在开发自定义 Swing 边框时,有没有时候子类化 AbstractBorder 比实现 Border 接口更合适?反之亦然?

从我看到的示例代码来看,它似乎很随意。

【问题讨论】:

    标签: java swing border


    【解决方案1】:

    对于干净的 OOP,您应该实现 Border 接口。但是,如果你不打算用继承自 Border 的新类来扩展新的 Border 类,那么扩展 AbstractBorder 会更方便。

    AbstractBorder 是 Swing 的一部分,让您的工作更轻松。所以使用它,但不要让它成为类层次结构的基础。

    【讨论】:

      【解决方案2】:

      有时,当 Java 有一个接口 XYZ 和一个类 AbstractXYZ 时,该类会做很多工作,而您只需要实现最少的部分(例如 List 和 AbstractList)。有时抽象类只提供一个无所事事的实现(例如 MouseInputListener 和 MouseInputAdapter)。 AbstractBorder 更多的是后一种情况;它并没有真正帮助 Border 的实现,但它确实提供了一些辅助方法(AFAICS)对于“托管”边框的组件比边框本身更有用。 所以,我会说它可能有点武断使用哪个。无论如何,我建议使用 AbstractBorder,没有理由不这样做(除非您当然需要从另一个类派生。)

      @PeterMmm,您为什么不将其用作层次结构的一部分?很多(全部?)标准 Swing 边框都来自 AbstractBorder。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-03
        • 2011-11-21
        • 2010-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-05
        • 2023-03-25
        相关资源
        最近更新 更多