Xin chào, tôi đang gặp sự cố.Mô hình trình xây dựng với các đối tượng lồng nhau
Tôi muốn triển khai mẫu trình tạo để tạo các đối tượng dễ dàng hơn. Vấn đề tôi phải đối mặt phải làm với đối tượng lồng nhau. Đối tượng tôi muốn tạo có một danh sách các đối tượng khác trong đó và tôi không thực sự có ý tưởng về cách giải quyết nó.
Tôi muốn để có thể làm như sau (đối tượng đơn giản ví dụ):
Receipt RestaurantReceipt = new ReceiptBuilder()
.withDate("value")
.withName("value")
.AddItem("value")
.WithIngredients("value")
.WithType("value")
.AddItem("value")
.WithIngredients("value")
.WithType("value")
.build();
Hoặc một cái gì đó như:
Receipt RestaurantReceipt = new ReceiptBuilder()
.withDate("value")
.withName("value")
.AddItem("value", item => {
.WithIngredients("value")
.WithType("value")
})
.AddItem("value", item => {
.WithIngredients("value")
.WithType("value")
})
.build();
Ví dụ nên đại diện cho hoàn cảnh của tôi, mặc dù nếu có nhiều hơn một loại đối tượng lồng nhau.
gì mã hiện tại của bạn cho 'ReceiptBuilder' nhìn l ike? Cấu trúc của các mục bạn đang cố gắng thêm vào với 'AddItem' là gì? – Jamiec
Có phải thủ thuật chung không trả lại bản thân thể hiện là giá trị trả về từ các hoạt động đó không? Vậy tại sao không '' ... .AddFoo (new Foo(). WithIngredient ("value"). WithType ("value")). ... ''? Chỉ cần lặp lại mẫu cho các kiểu con đó và sử dụng các hàm/thuộc tính phụ của bộ sưu tập phụ cụ thể. – BitTickler
Sẽ hữu ích khi xem lớp 'Receipt' class – konkked