实用程序类 - 正确的方法是什么?
对于具有公共静态的所有方法的实用程序类,正确的方法是什么?
我应该使用最终类还是抽象类?
请给出建议。
例如:
public final class A{
public static void method(){
/* ... */
}
}
或
public abstract class A{
public static void method(){
/* ... */
}
}
对于具有公共静态的所有方法的实用程序类,正确的方法是什么?
我应该使用最终类还是抽象类?
请给出建议。
例如:
public final class A{
public static void method(){
/* ... */
}
}
或
public abstract class A{
public static void method(){
/* ... */
}
}
abstract
有自己的目的。如果你想要一些由其他类()实现的类功能,那么你使用抽象。override
如果它只是实用程序类,但你不希望其他类子类它,那么我会选择类。如果实用程序类只有方法,则无论如何都无法重写它们,因此将它们也放在类中也没有区别。final
static
non-final
创建实用程序类的最佳方法。如果您不希望其他类继承它。
//final, because it's not supposed to be subclassed
public final class AlertUtils
{
// private constructor to avoid unnecessary instantiation of the class
private AlertUtils() {
}
public static ..(){}//other methods
}