[英]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.