Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 何时子类AbstractBorder,何时实现Border接口?_Java_Swing_Border - Fatal编程技术网

Java 何时子类AbstractBorder,何时实现Border接口?

Java 何时子类AbstractBorder,何时实现Border接口?,java,swing,border,Java,Swing,Border,在开发自定义Swing Border时,是否有过这样一种情况:子类AbstractBorder比实现Border接口更合适?反之亦然 从我看到的示例代码来看,它似乎相当随意 对于干净的OOP,您应该实现Border接口。但是,如果您不打算用继承自您的边界的新类来扩展新的边界类,那么扩展AbstractBorder会更方便 AbstractBorder是Swing的一部分,使您的工作更轻松。因此,请使用它,但不要将其作为类层次结构的基础。对于干净的OOP,您应该实现Border接口。但是,如果您不

在开发自定义Swing 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