我有以下疑问。C#重构注意事项
对于重构,我已经读了好创建一个具有非常特殊的责任方式,因此,如果可能的话,这是一个好主意,分裂在别人的小方法复杂的方法。
但是想象一下,我有这样的情况:
我要创建对象的列表,并insdie这个对象,我要创建另一个对象。类似的东西:
public void myComplexMethod(List<MyTypeA> paramObjectsA)
{
foreach(MyTypeA iteratorA in paramObjectsA)
{
//Create myObjectB of type B
//Create myObjectC of type C
myObjectB.MyPorpertyTpyeC = myObjectC;
}
}
我可以用两种方法拆分这个方法。
public void myMethodCreateB(List<MyTypeA> paramObjectsA)
{
foreach(MyTypeA iteratorA in paramObjectsA)
{
//Create myObjectB of type B
}
}
public void myMethodCreateB(List<MyTypeB> paramObjectsB)
{
foreach(MyTypeB iteratorB in paramObjectsB)
{
//Create myObjectC of type C
iteratorB.PropertyC = myObjectC;
}
}
在第二选项中,当我使用两种方法,而不是一个,所述单元测试是较不复杂的,但问题是,我使用两个foreach循环,所以它是低效率比只用一个像在环第一个选项。
那么,什么是最好的做法,至少在一般情况下,使用方法稍微复杂一些更有效率或使用更多的方法呢?
非常感谢。
目前还不清楚myComplexMethod和myMethodCreateB过载1&2(即,这两种选择之间的关系没有提供相同的)。请更好地解释你的确切情况(=写一个代码,显示所有这些方法如何实际连接)。 – varocarbas