当第一个不是强制性的时候(通常是我可以最终确定它们),在类和本地实例化方面是否存在差异?是否有"规则"我应该效仿?
我养成了使用类实例化来实例化其他类的习惯,而且我真的不知道这是不是很糟糕。
public class aService {
private final SomeClass someClass = new SomeClass();
public void someMethod() {
someClass.doSomething();
}
}
// or
public class aService {
public void someMethod() {
SomeClass someClass = new SomeClass();
someThing.doSomething();
}
}
答案 0 :(得分:0)
如果仅在该方法中使用,我希望在给定方法中初始化someClass
。
如果要在所有方法(多个)中使用someClass
并存储对象状态,请选择解决方案1.
当您想要优化时,第一种方法会更好,因为someClass
只创建一次。另一方面,您可能永远不会致电someMethod()
。在这种情况下,你会浪费内存。特别是如果你有很多这样的对象
答案 1 :(得分:0)
如果您描述的情况是一次性使用方法,为实现特定目的而实例化一次,之后其实例不再需要存在,那么我希望 这些选项 。两者都不必要地创建了一个实例。
相反,我宁愿专注于在SomeClass
static
中制作我关心的方法。主要原因是我可以保存不需要的对象实例化,并使API及其用法更加顺畅
答案 2 :(得分:0)
本身没有“规则”,但由于它与开发相关,因此该规则与良好的清洁开发人员代码指南相关... calss字段/变量应该在构造函数中初始化......这是构造函数的工作。
由于显而易见的原因,常量可以在同一行声明和初始化......