HINWEIS: Alle Builder sind nur für Komponententests vorgesehen.Welche ist effektiver beim Bau von Bauarbeitern?
So habe ich Builder erstellt und als ich sie erstellt habe, habe ich festgestellt, dass einige der anderen Bauherren, bereits an ihrem Platz, ein bisschen ein anderes Muster folgen.
Dachte ich frage hier welcher effektiver ist.
Mein Weg, es zu tun, ist dies:
public class Builder
{
public Builders()
{
SetDefaults();
}
private void SetDefaults()
{
// Setting my defaults
}
}
Der andere Weg, der an seinem Platz ist:
public class Builder
{
public Builder WithDefaults()
{
// Setting my defaults
}
}
Meiner Meinung nach dem ersten ist effektiver, weil Sie gerade Ihre Erbauer erstellen und Es übernimmt automatisch die Standardeinstellung für Sie.
Im anderen Fall müssen Sie explizit die WithDefaults-Methode aufrufen, um alle Standardwerte festzulegen, bevor Sie mit der Erstellung fortfahren.
Der zweite scheint fehleranfälliger zu sein, da einige Objekte, die erstellt werden müssen, Null-Ausnahmen auslösen können, wenn sie nicht alle ihre Felder eingerichtet haben.
Vielleicht vermisse ich hier etwas Subtiles, also habe ich mich entschieden, dich zu fragen, welches effektiver ist.
Vielen Dank.
Wenn Sie "WithDefaults" aufrufen müssen, sind sie nicht wirklich defaults, oder? –
@JonSkeet das ist ein toller Punkt, danke! – AvetisG
Nun, wenn ich wirklich einen Profi für die zweite Methode finden wollte, wäre es dieser: WithDefault könnte immer noch verwendet werden, um die Builder-Attribute auf ihre Standardwerte zurückzusetzen .... – Sidewinder94