【发布时间】:2018-06-04 19:03:02
【问题描述】:
我正在尝试在为实用程序类编写最佳代码的两种不同方法之间做出选择。
选项 1:
public class UtilityClass {
public static ClassB method1(ClassA obj1, ClassA obj2) {
//Some lines of code
}
public static ClassC method2(ClassD obj1, ClassD obj2) {
//Some lines of code
}
}
选项 2:
public enum UtilityEnum {
INSTANCE;
public ClassB method1(ClassA obj1, ClassA obj2) {
//Some lines of code
}
public ClassC method2(ClassD obj1, ClassD obj2) {
//Some lines of code
}
}
我相信选项 1 为内联提供了空间。选项 2 将把实例放在堆中。这会影响性能吗?哪种方式最可取?
【问题讨论】:
-
即使可能对性能产生影响,那也是次要的。但是您可能需要考虑的一件事是单元测试。单元测试静态方法并不总是微不足道的,但根据您的实际实现,差异可能可以忽略不计。
-
拥有一个实例不会增加任何内容。它只是一个静态方法,里面有一个额外烦人的名字。
-
softwareengineering.stackexchange.com 可能是这个问题更好的地方。
标签: java methods singleton static-methods