我应该创建静态方法还是抽象超类

7 java abstract-class static-methods

我正在尝试重构一个项目,其中有相同的方法分布在不同的类中.为了减少代码重复,我应该将公共代码移动到抽象超类还是应该将它放在实用程序类中的静态方法中?

编辑 一些方法是针对通用的东西,我认为可以是静态的.虽然还有其他人引用了类的属性,但在这种情况下,我认为将它作为抽象超类更有意义.

Azo*_*ous 6

好吧,我遵循一条规则:不要使用基类来删除代码重复,使用实用程序类.

对于继承,请向自己提问:Is-A关系是否存在?

大多数时候都是正确的另一个规则是:优先考虑继承的构成

使用静态实用程序类不是真正的组合,但它可以称为它的派生.

将这些规则应用于您的secenrios并做出决策,记住维护和可伸缩性.但是,如果您可以向问题添加更多详细信息,那将是一件好事.


小智 0

如果它不使用任何类成员,您可以将其静态化!

但你应该在抽象类或母类中进行