Tôi đang cố gắng triển khai DDD lần đầu tiên với dự án ASP.NET MVC và tôi đang đấu tranh với một vài thứ.Thiết kế điều khiển tên miền: Khi nào cần tạo một gốc tổng hợp?
Tôi có 2 thực thể liên quan, Công ty và Nhà cung cấp. Ý nghĩ ban đầu của tôi là Công ty là một gốc tổng hợp và Nhà cung cấp đó là một đối tượng giá trị cho Công ty. Vì vậy, tôi có một Kho lưu trữ cho công ty và không có cho Nhà cung cấp.
Nhưng khi tôi bắt đầu xây dựng ứng dụng của mình, tôi đã cần danh sách riêng, tạo và cập nhật biểu mẫu cho Nhà cung cấp. Danh sách rất dễ dàng tôi có thể gọi Company.Suppliers, và tạo ra là khủng khiếp tôi có thể làm Company.Suppliers.Add (nhà cung cấp), nhưng cập nhật là cho tôi một nhức đầu. Vì tôi chỉ cần một thực thể và tôi không thể chính xác dính vào bộ nhớ giữa các biểu mẫu, tôi đã cần phải tìm nạp lại công ty và tất cả các nhà cung cấp và tìm một công ty tôi cần để liên kết với nó và một lần nữa sửa đổi và duy trì nó trở lại db.
Tôi thực sự chỉ cần thực hiện GetOne nếu tôi có kho lưu trữ cho Nhà cung cấp. Tôi có thể thêm một số công việc xung quanh bằng cách thêm một GetOneSupplier vào công ty của tôi hoặc CompanyRepository, nhưng điều đó có vẻ như junky.
Vì vậy, tôi thực sự tự hỏi nếu nó thực sự là một đối tượng giá trị, và không phải là một thực thể tên miền đầy đủ chính nó.
tldr;
Có cần danh sách/tạo/cập nhật chế độ xem/trang riêng biệt một dấu hiệu cho thấy một thực thể phải là gốc của chính nó không?
Câu trả lời thú vị! Bạn đã giúp xác nhận những gì tôi đã suy nghĩ và giải thích nhiều hơn nữa. Cảm ơn bạn rất nhiều! Tôi đồng ý, sẽ có chia sẻ được tham chiếu tới nhà cung cấp nếu chúng tồn tại, nhưng trong thời điểm người dùng nhập dữ liệu không có cách nào để xác thực rằng 2 nhà cung cấp là giống nhau. Điều đó có thể thay đổi trong tương lai khi hệ thống phát triển, nhưng bây giờ đó là câu chuyện. Cảm ơn một lần nữa! –
Tôi đồng ý đây là một lời giải thích tuyệt vời, hữu ích hơn những gì tôi thường thấy trong danh sách gửi thư DDD! –
Câu trả lời sáng chói. Một phiếu bầu từ tôi. –