我有一個我想實現的類,但是有很多條件邏輯,所以我決定實現一個構建器(like)模式。這些制定者將幾乎只標誌設置C#中的默認設置參數#
private class MockBuilder
{
private bool _flag1 = false;
private bool _flag2 = false;
// arbitrarily long amount of flags here
public MockBuilder()
{
}
public void DoFlag1(bool value = true)
{
_flag1 = value;
}
public void DoFlag2(bool value = true)
{
_flag2 = value;
}
public builtObject Build()
{
// Build with current flags
}
}
長話短說,我看着默認PARAMS的制定者和喜歡的一些問題:c#: getter/setter ,不知道是否有一個更「C#」的方式來做到這一點,沿
public bool flag1 { get; set(value = true); }
的最終目標是能夠調用的建設者,像這樣
var object = new MockBuilder();
builder
.flag1()
.flag3()
// etc...
.generate();
不C#實現一些東西線setter的默認值是什麼?這是一個很好的建設者模式的使用?我應該一起使用不同的模式嗎?
看看這個問題:http://stackoverflow.com/questions/40730/how-do-you-give-ac-sharp-auto-property -a-default-value .. – txtechhelp
默認情況下,我希望標誌最初設置爲false。然後,當通過調用「setter」觸發時,我希望它將其設置爲true,除非特別指出不是。如果這是有道理的。因此,如果可能的話,我希望setter有更多的C#方式的默認參數。如果不是,這是最好的方法嗎? –
我不得不懷疑,如果這是其中的一個問題,那就是「如何解決x」,其中x可能不是解決問題的最佳方式。迪倫,你試圖解決的真正問題是什麼?多少個標誌(32/64 /更多)?有很多方法可以組合標誌/對象/屬性來描述狀態。更多信息將有助於爲問題提供解決方案,也許不會關注您可能提出的算法(這可能很有趣)。 –