我想知道解决这个问题的最佳方法是什么:
我有一个抽象类如下:
public abstract class AbstractTestClass
{
public AbstractTestClass(String text)
{
SomeObject someObject = SomeStaticClass.getSomeObjectFromText(text);
//etc...
this.property1 = someObject.property1
//basically populate properties based off of someObject
}
}
和一个示例实现:
public class AbstractTestClassImpl
{
public AbstractTestClassImpl(String text)
{
super(text);
SomeObject someObject = SomeStaticClass.getSomeObjectFromText(text);
//do stuff with someObject that isn't done in the super constructor because it may vary per different implementations of the abstract class
}
}
因此,从这个示例代码片段中, someObject 被创建了两次,我想知道是否可以只创建一次或保持原样。
显而易见的解决方案是someObject
在 AbstractClass 中创建一个成员变量,但是,我也有someObject
根本不需要的情况。
考虑构造函数:
public AbstractTestClass(int i, int j, char c)
{
//do stuff where someObject is not required
}
在这种情况下,拥有一个someObject
成员是没有意义的,因为它根本没有被使用。
假设someObject
仅在那个构造函数中使用。
解决这个问题的最佳方法是什么?