Cześć Utknąłem z problemem.Wzór konstruktora z obiektami zagnieżdżonymi
Chcę zaimplementować wzór konstruktora, aby ułatwić tworzenie moich obiektów. Problem, który napotykam, ma związek z zagnieżdżonym obiektem. Obiekt, który chciałbym utworzyć, zawiera listę innych obiektów i nie mam pomysłu, jak go rozwiązać.
Chcę być w stanie wykonać następujące (prostsze obiekty przykładowo):
Receipt RestaurantReceipt = new ReceiptBuilder()
.withDate("value")
.withName("value")
.AddItem("value")
.WithIngredients("value")
.WithType("value")
.AddItem("value")
.WithIngredients("value")
.WithType("value")
.build();
albo coś podobnego:
Receipt RestaurantReceipt = new ReceiptBuilder()
.withDate("value")
.withName("value")
.AddItem("value", item => {
.WithIngredients("value")
.WithType("value")
})
.AddItem("value", item => {
.WithIngredients("value")
.WithType("value")
})
.build();
przykład powinien być reprezentatywny dla mojej sytuacji, choć jeśli mam więcej niż jeden typ zagnieżdżonego obiektu.
Co aktualny kod 'ReceiptBuilder' wygląd l ike? Jaka jest struktura elementów, które próbujesz dodać za pomocą 'AddItem'? – Jamiec
Czy ogólny trik nie zwraca samej instancji jako wartości zwracanej z tych operacji? Dlaczego więc nie "' ... .AddFoo (new Foo(). WithIngredient ("value"). WithType ("value")). ... ''? Po prostu powtórz wzorzec dla tych podtypów i użyj specjalnych funkcji dodawania/właściwości pod-kolekcji. – BitTickler
Przydałoby się zobaczyć "Pokwitowanie" klasy – konkked