注意:所有的构建器都只适用于单元测试。
我一直在创建构建器,但是我注意到一些其他已存在的构建器遵循了不同的模式。想问一下哪种方式更有效。
我的做法如下:
另外一种已经存在的方式是:
在我看来,第一个方法更加有效,因为你只需要创建生成器,它会自动为你进行默认设置。
而在另一种情况下,你必须显式调用WithDefaults方法,在继续构建之前设置所有默认值。
第二种方法似乎更容易出现错误,因为一些需要构建的对象如果没有设置完所有字段,可能会抛出空异常。
也许我在这里忽略了一些微妙的东西,所以我决定问你哪个方法更有效。
谢谢。
我一直在创建构建器,但是我注意到一些其他已存在的构建器遵循了不同的模式。想问一下哪种方式更有效。
我的做法如下:
public class Builder
{
public Builders()
{
SetDefaults();
}
private void SetDefaults()
{
// Setting my defaults
}
}
另外一种已经存在的方式是:
public class Builder
{
public Builder WithDefaults()
{
// Setting my defaults
}
}
在我看来,第一个方法更加有效,因为你只需要创建生成器,它会自动为你进行默认设置。
而在另一种情况下,你必须显式调用WithDefaults方法,在继续构建之前设置所有默认值。
第二种方法似乎更容易出现错误,因为一些需要构建的对象如果没有设置完所有字段,可能会抛出空异常。
也许我在这里忽略了一些微妙的东西,所以我决定问你哪个方法更有效。
谢谢。