我有一个类MyClass:
public class MyClass {
private MyComplexType member1;
}
我必须对
member1
进行一些非常强烈的初始化。它足以保证需要使用自己的方法(从MyClass
构造函数调用)。我的问题是,以下哪种格式最适合此方法?
private MyComplexType initMyComplexType() {
MyComplexType result = new MyComplexType();
// extensive initialization on result...
return result;
}
这样称呼:
public MyClass() {
member1 = initMember1();
}
或
private void initMember1() {
member1 = new MyComplexType();
// extensive initialization on member1...
}
这样称呼:
public MyClass() {
initMember1();
}
私人成员哪种风格更好?为什么?
最佳答案
我选择第一个选项,因为它可以更清楚地表达init方法的目的并显式显示数据流。
更不用说它使init方法中的代码潜在地可重用。如果以后需要初始化另一个变量,则可以再次调用该方法而不必担心副作用。此外,如果另一个变量在另一个类中,则可以轻松地将方法移动到两个地方都可以访问的地方。
沿着这条线,我还将考虑将init方法保留为doExtensiveComplexCalculation
之类,以将其与实际成员变量解耦。