Là một phần của mô hình miền của tôi, giả sử tôi có đối tượng WorkItem
. Các đối tượng WorkItem
có nhiều mối quan hệ để tra cứu giá trị như:Giá trị tra cứu có nên được mô hình hóa dưới dạng tổng hợp không?
WorkItemType
:
- UserStory
- Bug
- Enhancement
Priority
:
- cao
- Medium
- thấp
Và có thể có thể được nhiều hơn, chẳng hạn như Status
, Severity
, vv ...
DDD khẳng định rằng nếu một cái gì đó tồn tại trong một gốc tổng hợp mà bạn shouldn không cố gắng truy cập nó bên ngoài gốc tổng hợp. Vì vậy, nếu tôi muốn có thể thêm các WorkItemTypes mới như Task, hoặc các ưu tiên mới như Critical, các giá trị tra cứu đó có cần phải là các nguồn tổng hợp với các kho lưu trữ riêng của chúng không? Điều này có vẻ hơi quá mức đặc biệt nếu chúng chỉ là một cặp giá trị quan trọng. Làm cách nào để tôi cho phép người dùng sửa đổi các giá trị này và vẫn tuân thủ quy tắc đóng gói gốc tổng hợp?
Trong trường hợp của tôi, ứng dụng không cần phải sửa đổi các giá trị tra cứu. Tôi đoán mô hình hóa các đối tượng này như tổng hợp dường như có ý nghĩa. Vaughn Vernon có giải thích về cách những tập hợp này có thể làm việc cùng nhau trong bài viết này (http://dddcommunity.org/sites/default/files/pdf_articles/Vernon_2011_2.pdf). Ở dưới cùng của trang 8, ông đề cập rằng bạn có thể có một dịch vụ ứng dụng giải quyết các phụ thuộc. Ông cũng nói rằng nếu các truy vấn trở nên quá tốn kém, bạn có thể sử dụng một số CQRS. –