Khi theo thiết kế hướng tên miền (DDD), liệu tổng hợp gốc có giữ tham chiếu đến một thực thể bên trong có thể là thực thể gốc trên một tổng hợp riêng không?
Tôi tin rằng điều này là không chính xác, chủ yếu là do quy tắc này trên cuốn sách màu xanh :
Không có gì bên ngoài ranh giới AGGREGATE có thể chứa một tham chiếu đến bất cứ thứ gì bên trong, ngoại trừ ENTITY gốc. ENTITY gốc có thể trao các tham chiếu đến ENTITY bên trong cho các đối tượng khác, nhưng các đối tượng đó chỉ có thể sử dụng chúng tạm thời và chúng không thể giữ tham chiếu. Rễ có thể trao một bản sao của ĐỐI TƯỢNG GIÁ TRỊ cho một đối tượng khác và không có vấn đề gì xảy ra với nó, bởi vì đó chỉ là một GIÁ TRỊ và sẽ không còn liên kết với AGGREGATE nữa.
Nếu một tổng hợp gốc giữ một tham chiếu đến một tổng hợp gốc khác thì ranh giới của trước đó bị vi phạm và toàn bộ khái niệm về một tổng hợp bị hỏng, vì vậy tôi tin rằng nếu một tổng hợp gốc có vẻ như cần phải giữ một tham chiếu đến tổng hợp gốc khác, thì tôi cần để tạo một thực thể khác , có thể sẽ chia sẻ một số thành viên giống như thực thể gốc khác, nhưng sẽ không có bản sắc toàn cầu, vì quy tắc khác này trong sách nêu rõ:
Root ENTIES có bản sắc toàn cầu. ĐỐI TƯỢNG bên trong ranh giới có bản sắc địa phương, duy nhất trong AGGREGATE.
Tôi tin rằng đây sẽ là con đường chính xác để đi, nhưng vì nó cảm thấy lặp đi lặp lại và dư thừa (khi được đưa ra khỏi bối cảnh của DDD, với OOP thuần túy) tôi đang yêu cầu một số phản hồi.