【发布时间】:2011-12-16 05:23:24
【问题描述】:
我正在尝试重构一个项目,其中有相同的方法分布在不同的类中。为了减少代码重复,我应该将公共代码移动到抽象超类还是应该将其放在实用程序类的静态方法中?
编辑 其中一些方法适用于我认为可以设为静态的通用内容。虽然还有其他引用类的属性,但在这种情况下,我认为将其作为抽象超类更有意义。
【问题讨论】:
-
没有上下文就无法回答;很大程度上取决于现有类的相关程度、类和方法的使用方式等。
-
你必须告诉我们更多关于这些方法的信息——如果它们具有相同的行为并且可以独立于任何类运行,那么使用具有静态方法的实用程序类将是有意义的。如果您正在考虑使用抽象类/基类/接口,则必须考虑该类层次结构是否有意义,以及这些函数是否真的是这些类固有的行为,或者如前所述,这些方法无关紧要关于他们所在的班级。
-
您能解释一下该方法的作用以及所有这些类是否相关吗?
-
提供更多有关您实际尝试做什么的信息。
-
我问了几乎同样的问题:stackoverflow.com/questions/5312193/base-class-vs-utility-class。看看有没有帮助。
标签: java abstract-class static-methods