Мне было интересно, что было бы лучшим способом реализовать условие .When
в свободном интерфейсе, используя цепочку методов в объекте Builder
?
Например, как бы реализовать методы .WithSkill()
и .When()
в следующем примере:
var level = 5;
var ninja = NinjaBuilder
.CreateNinja()
.Named("Ninja Boy")
.AtLevel(level)
.WithShurikens(10)
.WithSkill(Skill.HideInShadows)
.When(level > 3)
.Build()
Обновить. Примерное решение можно найти здесь.