Java 何时子类AbstractBorder,何时实现Border接口?
在开发自定义Swing Border时,是否有过这样一种情况:子类Java 何时子类AbstractBorder,何时实现Border接口?,java,swing,border,Java,Swing,Border,在开发自定义Swing Border时,是否有过这样一种情况:子类AbstractBorder比实现Border接口更合适?反之亦然 从我看到的示例代码来看,它似乎相当随意 对于干净的OOP,您应该实现Border接口。但是,如果您不打算用继承自您的边界的新类来扩展新的边界类,那么扩展AbstractBorder会更方便 AbstractBorder是Swing的一部分,使您的工作更轻松。因此,请使用它,但不要将其作为类层次结构的基础。对于干净的OOP,您应该实现Border接口。但是,如果您不
AbstractBorder
比实现Border
接口更合适?反之亦然
从我看到的示例代码来看,它似乎相当随意 对于干净的OOP,您应该实现Border接口。但是,如果您不打算用继承自您的边界的新类来扩展新的边界类,那么扩展AbstractBorder会更方便
AbstractBorder是Swing的一部分,使您的工作更轻松。因此,请使用它,但不要将其作为类层次结构的基础。对于干净的OOP,您应该实现Border接口。但是,如果您不打算用继承自您的边界的新类来扩展新的边界类,那么扩展AbstractBorder会更方便
AbstractBorder是Swing的一部分,使您的工作更轻松。因此,请使用它,但不要将其作为类层次结构的基础。有时,当Java有一个接口XYZ和一个类AbstractXYZ时,该类会做很多工作,只剩下最简单的实现(例如List和AbstractList)。有时抽象类只提供一个不做任何事情的实现(例如MouseInputListener和MouseInputAdapter)。 AbstractBorder更多的是后一种情况;它并没有真正帮助边界的实现,但它确实提供了一些辅助方法(AFAIC),这些方法对“承载”边界的组件比边界本身更有用。 所以,我想说,使用哪一个可能有点随意。无论如何,我建议使用AbstractBorder,没有理由不这样做(当然,除非您需要从另一个类派生)
@彼得,你为什么不把它作为层次结构的一部分呢?很多(全部?)标准Swing边框都源于AbstractBorder。有时候,当Java有一个接口XYZ和一个类AbstractXYZ时,该类会做很多工作,只剩下最简单的实现(例如List和AbstractList)。有时抽象类只提供一个不做任何事情的实现(例如MouseInputListener和MouseInputAdapter)。 AbstractBorder更多的是后一种情况;它并没有真正帮助边界的实现,但它确实提供了一些辅助方法(AFAIC),这些方法对“承载”边界的组件比边界本身更有用。 所以,我想说,使用哪一个可能有点随意。无论如何,我建议使用AbstractBorder,没有理由不这样做(当然,除非您需要从另一个类派生) @彼得,你为什么不把它作为层次结构的一部分呢?很多(全部?)标准Swing边框都源自AbstractBorder