Đầu tiên, trước khi có ai đó la hét dupe, tôi đã gặp khó khăn khi tóm tắt nó trong một tiêu đề đơn giản. Một tiêu đề khác có thể là "Sự khác biệt giữa mô hình miền và mô hình MVC là gì?" hoặc "Mô hình là gì?"
Về mặt khái niệm, tôi hiểu Mô hình là dữ liệu được sử dụng bởi các khung nhìn và bộ điều khiển. Ngoài ra, dường như có rất nhiều ý kiến khác nhau về những gì tạo nên mô hình. Mô hình miền là gì so với mô hình ứng dụng, so với mô hình chế độ xem, so với mô hình dịch vụ, v.v.
Ví dụ, trong một câu hỏi gần đây tôi đã hỏi về mô hình kho lưu trữ, tôi đã được trả lời trống rằng kho lưu trữ là một phần của mô hình. Tuy nhiên, tôi đã đọc các ý kiến khác rằng mô hình nên được tách biệt khỏi mô hình bền vững và lớp logic nghiệp vụ. Rốt cuộc, không phải mẫu Kho lưu trữ được cho là tách phương pháp duy trì cụ thể khỏi mô hình sao? Những người khác nói rằng có sự khác biệt giữa mô hình Miền và mô hình MVC.
Hãy lấy một ví dụ đơn giản. AccountController được bao gồm trong dự án mặc định MVC. Tôi đã đọc một số ý kiến cho rằng Mã tài khoản được bao gồm có thiết kế kém, vi phạm SRP, v.v ... vv .. Nếu một người thiết kế mô hình Thành viên "phù hợp" cho ứng dụng MVC, đó sẽ là gì?
Bạn sẽ tách các dịch vụ ASP.NET (nhà cung cấp thành viên, nhà cung cấp vai trò, v.v.) ra khỏi mô hình như thế nào? Hay bạn sẽ không?
Theo cách tôi thấy, mô hình nên "thuần túy", có lẽ với logic xác thực .. nhưng nên tách biệt khỏi các quy tắc nghiệp vụ (ngoài xác thực). Ví dụ: giả sử bạn có một quy tắc kinh doanh nói rằng ai đó phải được gửi email khi tạo tài khoản mới. Theo quan điểm của tôi, điều đó không thực sự thuộc về mô hình. Vậy nó thuộc về đâu?
Có ai muốn làm sáng tỏ vấn đề này không?