Hi Ich stecke mit einem Problem fest.Builder-Muster mit verschachtelten Objekten
Ich möchte das Builder-Muster implementieren, um die Erstellung meiner Objekte zu erleichtern. Das Problem, mit dem ich konfrontiert bin, hat mit verschachtelten Objekten zu tun. Das Objekt, das ich erstellen möchte, enthält eine Liste anderer Objekte, und ich habe keine Ahnung, wie ich es angehen soll.
Ich möchte folgende (Simpler Objekte zum Beispiel) in der Lage sein zu tun:
Receipt RestaurantReceipt = new ReceiptBuilder()
.withDate("value")
.withName("value")
.AddItem("value")
.WithIngredients("value")
.WithType("value")
.AddItem("value")
.WithIngredients("value")
.WithType("value")
.build();
Oder so etwas wie:
Receipt RestaurantReceipt = new ReceiptBuilder()
.withDate("value")
.withName("value")
.AddItem("value", item => {
.WithIngredients("value")
.WithType("value")
})
.AddItem("value", item => {
.WithIngredients("value")
.WithType("value")
})
.build();
Beispiel für meine Situation repräsentativ sein sollte, aber wenn mehr bekam als eine Art verschachteltes Objekt.
Was für 'ReceiptBuilder' Blick l Ihre aktuellen Code tut Ike? Was ist die Struktur der Elemente, die Sie versuchen, mit 'AddItem' hinzuzufügen? – Jamiec
Ist der allgemeine Trick, die Instanz selbst nicht als Rückgabewert von diesen Operationen zurückzugeben? Warum also nicht '' ... .AddFoo (new Foo(). WithIngredient ("value"). WithType ("value")). ... ''? Wiederholen Sie einfach das Muster für diese Untertypen und verwenden Sie Untersammlungsspezifische Add-Funktionen/Eigenschaften. – BitTickler
Wäre hilfreich, wenn Sie die Klasse "Receipt" sehen würden – konkked