<分区>
在静态方法中实例化自身实例然后使用该对象而不是静态地执行所有操作的缺点是什么?
假设我有这样一个类:
public class MyClass {
private String foo;
private String bar;
private MyClass(String foo, String bar) {
this.foo = foo;
this.bar = bar;
}
public static String concat(String foo, String bar) {
MyClass myClass = new MyClass(foo, bar);
return myClass.concatStrings();
}
private String concatStrings() {
return foo + bar;
}
}
此模式的好处是我不必将输入参数传递给各种私有(private)方法。我能想到的唯一不好的事情是,创建一个我并不真正需要的对象可能是一个性能问题。但是在这个非常简单的例子中,我只注意到与像这样的简单静态类相比有很多迭代(即>=10^8)的真正区别(在快速 junit 测试中):
public class MyStaticClass {
public static String concat(String foo, String bar) {
return foo + bar;
}
}
还有其他支持或反对这种模式的论据吗?