[英]C# construction objects with builder
Fluent构建器是一种众所周知的模式,用于构建具有许多属性的对象:
Team team = teamBuilder.CreateTeam("Chelsea")
.WithNickName("The blues")
.WithShirtColor(Color.Blue)
.FromTown("London")
.PlayingAt("Stamford Bridge");
但是,由于一个特殊原因,使用它对我来说似乎不太清楚:
Team
对象都有其最小的操作状态 ,换句话说,必须设置的属性集(必需),以便对象可以使用。 现在,考虑到你必须保持这种状态,应如何使用Fluent builder
方法?
如果With_XYZ
成员修改了对象的一部分,那么这不会影响这种状态吗?
也许这种情况有一些一般规则?
如果CreateTeam
方法应该将强制属性作为参数,接下来会发生什么?
如果我(例如)省略WithNickName
调用会发生什么?
这是否意味着昵称应该默认为某个DefaultNickname
?
这是否意味着该示例(请参阅链接)不好,因为该对象可能处于无效状态?
而且,我怀疑在这种情况下,流畅的建筑方法实际上失去了它的“美丽”,不是吗?
CreateTeam()
应该具有必需的属性作为参数。
Team CreateTeam(string name, Color shirtColor, string Town)
{
}
在我看来,Fluent Interface的要点是:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.