Trước hết tôi muốn làm rõ rằng tôi mới sử dụng Domain Driven Design và tôi đang đặt câu hỏi này bởi vì tôi đã đọc một cái gì đó gọi là Mô hình Miền Anemic.Mô hình Kho lưu trữ với Thiết kế Điều khiển Tên miền có trở thành Chống Mẫu không?
Hầu hết thời gian tôi nhìn thấy điều sau khi làm việc với mẫu Kho lưu trữ.
- Chúng tôi đã Một Generic Repository
- Chúng tôi có mẫu mà chỉ chứa một tập hợp các tài sản công cộng nhưng nó không chứa bất kỳ phương pháp (Vì vậy, Nó trở nên thiếu máu Domain Model theo định nghĩa của DDD) vì lớp ở đây kho xử lý khác quy trình cho thực thể hoặc mô hình đó.
Vui lòng cung cấp câu trả lời có giá trị cho truy vấn của tôi.
Hãy để tôi làm rõ một số điều.
Kho lưu trữ chung có nghĩa là giao diện chung được triển khai bởi kho lưu trữ Entity.
nhầm lẫn của tôi là về sau điều
Ví dụ: Giả sử tôi muốn lưu
public class User
{
public int Id { get; set;}
public string Name { get; set};
}
public class UserRepository : IRepository<User>
{
// All Operation Like Save/Get/UserEntity (Domain Object)
}
Vì vậy, đây là lớp người dùng của tôi không làm gì thay vào đó nó chỉ có tài sản và xử lý hoạt động khác bằng cách UserRespository
. Vì vậy, người dùng của tôi là mô hình Miền thiếu máu. (Vì nó không có gì cụ thể)
Ở đây trong hình ảnh đính kèm, tôi xem xét ProductRepository
vì vậy câu hỏi của tôi là: Sản phẩm của tôi có phải là mô hình Anemic không?
Vui lòng xem xét làm theo Mẫu hình ảnh cho những gì tôi đang cố gắng nói.
Bạn có thể giải thích thêm không? Điều gì làm cho bạn nghĩ rằng Repository sẽ là một antipattern? Ý kiến của ai đó? Của riêng bạn? Đặt một số giá trị vào câu hỏi nếu bạn mong đợi câu trả lời có giá trị :) –
Nó không phải là của riêng tôi mà Repository là mô hình chống nhưng tôi nhầm lẫn cách định nghĩa mô hình miền lưu trữ và mô hình kho lưu trữ. Giống như mô hình Repository chăm sóc lưu thực thể nhưng thực thể chính nó không có bất kỳ phương pháp nào để lưu. – dotnetstep
Điều đó sẽ hoàn toàn hợp lệ trong DDD, coi các kho lưu trữ là dịch vụ. –