【发布时间】:2016-03-14 00:47:09
【问题描述】:
我正在将一些旧的 Java 4 代码更新为 Java 8(此处粘贴太多了),最初的程序员选择让他们的几乎每个类都扩展这个只有静态方法和常量的单个 HUGE 类,但我不知道他们的推理。
例如:
public class BaseClass{
/* this class has a huge amount of ONLY static methods/constants */
public static final int STUFF_DONE = 1;
public static String getStuff(){
String stuff = "this is my stuff.";
return stuff;
}
...
}
public class SuperClass extends BaseClass{
/* this class has only a few methods */
public String labelStuff(){
return getStuff();
}
}
public class MyClass extends SuperClass{
/* there are many classes that extend SuperClass like this one */
public int handleStuff(){
String myString = labelStuff();
return STUFF_DONE;
}
public static void main(){
if(handleStuff()) System.out.println("Done.");
}
}
我的问题是……是保留这种设计更好,还是删除静态方法/常量的继承并简单地静态调用这些方法/常量更好?
对我来说,“更好”被定义为较低的内存消耗(同样,这个基类非常大),因为 CPU 可能不受此影响。这种方法的好处/缺陷是什么?
我担心的是,因为 BaseClass 太大了,以至于我浪费了大量内存来仅使用继承类中的一两个方法/常量,而我只能静态调用这些方法/常量。
【问题讨论】:
标签: java inheritance memory java-8 static-methods