这两种方法都对我有用,但我不确定从"良好实践"的角度来看这个建议是什么.
我有一个在我的库中执行各种控制功能的类,因此需要初始化各种对象和属性.
是否可以将所有这些逻辑放在类的构造函数中,或者我应该将它放在"Initialise"方法中.
public MyClass()
{
mSubObjectA = new mSubObjectA();
mSubObjectA.DoStuff();
mSubObjectA.DoMoreStuff();
mSubObjectB = new mSubObjectB();
mSubObjectC = new mSubObjectC();
if (something)
{
DoStuff();
}
else
{
MagicHappens();
}
}
Run Code Online (Sandbox Code Playgroud)
就个人而言,我喜欢一个物体,在我收到它的时候可以完全投入使用.另一方面,在构造函数中做很多工作确实有点味道.
另一种方法是编写一个静态工厂方法(或工厂类*),它可以在调用构造函数之前完成所需的所有工作,然后使构造函数本身非常简单.您可以选择是否公开简单构造函数,具体取决于您的要求.
*工厂类可以提高可测试性,并允许可能不同的工厂实现.另一方面,在那一点上,你有一个非常高的抽象水平,这可能会分散注意力.
| 归档时间: |
|
| 查看次数: |
596 次 |
| 最近记录: |