Mô hình miền và truy vấn


8

Tôi chưa quen với DDD, chỉ làm việc trong các ứng dụng Script-Script với mô hình thiếu máu hoặc chỉ là Big Balls of Mud, vì vậy xin vui lòng tha thứ cho bất kỳ thuật ngữ nào tôi lạm dụng.

Tôi đang cố gắng để hiểu sự tách biệt thích hợp giữa mô hình miền và kho lưu trữ. Cách thích hợp để xây dựng một đối tượng miền đến từ cơ sở dữ liệu là gì, giả sử cần (đơn giản hóa đến mức khó tin) để truy vấn các đối tượng theo trạng thái (trả về enumerable) hoặc bằng ID.

  • Một nhà máy có nên xây dựng các đối tượng, phơi bày các phương thức cho GetByStatus()GetByID(), sử dụng kho lưu trữ DIed không?
  • Có nên gọi trực tiếp một kho lưu trữ, biết cách xây dựng mô hình miền từ DTO không?
  • Mô hình miền có nên có một hàm tạo để lấy bằng ID, sử dụng repoistory DIed để tải trạng thái ban đầu, sử dụng một số phương thức (?) Khác cho danh sách không?

Tôi không thực sự chắc chắn cách tốt nhất sẽ là gì, và câu hỏi này có câu trả lời ủng hộ từng người (đây chắc chắn là độc quyền của mutuallu).

Câu trả lời:


6

Kho lưu trữ là một dịch vụ của mô hình miền, có trách nhiệm phục vụ như một lớp giữa miền và kho lưu trữ dữ liệu của bạn. Nó nên có phương thức để truy vấn các thực thể và phương thức để lưu và cập nhật chúng.

Để trả lời câu hỏi của bạn:

  • Tôi sẽ nói không. Tôi nghĩ rằng nếu bạn sử dụng các nhà máy để tạo đối tượng miền của mình, thì rõ ràng đối tượng miền đến từ kho lưu trữ dữ liệu và không được tạo lại.
  • Có nếu bạn muốn. Tôi nghĩ rằng điều này là khá gần với chi tiết thực hiện và có thể để lại cho bạn.
  • Chắc chắn không phải. Như tôi đã nói, rõ ràng nơi mà thực thể đến từ đâu.

Ngoài ra, nếu bạn đang sử dụng khung ORM, thì khung này đã là dạng kho lưu trữ. Tận dụng triệt để và không phát minh lại bánh xe hoặc thêm lớp phức tạp không cần thiết lên nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.