Sự khác biệt giữa đối tượng Mô hình MVC, đối tượng miền và DTO là gì?
Sự hiểu biết của tôi là:
Đối tượng mô hình MVC:
Lập mô hình dữ liệu sẽ được hiển thị bằng một dạng xem tương ứng. Nó có thể không ánh xạ trực tiếp đến một đối tượng miền, tức là có thể bao gồm dữ liệu từ một hoặc nhiều đối tượng miền.
- Phía khách hàng
- Có thể chứa logic nghiệp vụ. Ví dụ. xác thực, thuộc tính được tính toán, v.v.
- Không có phương pháp liên quan đến sự bền bỉ
Đối tượng miền:
Một đối tượng mô hình đối tượng trong thế giới thực trong miền vấn đề như Đặt chỗ, Khách hàng, Đơn đặt hàng, v.v. Được sử dụng để duy trì dữ liệu.
- Phía máy chủ
- Không có logic kinh doanh
DTO (Đối tượng truyền dữ liệu):
Một đối tượng được sử dụng để chuyển dữ liệu giữa các lớp khi các lớp nằm trong các quy trình riêng biệt, ví dụ: từ DB sang ứng dụng khách. Cho phép một giao dịch qua dây thay vì nhiều cuộc gọi khi tìm nạp dữ liệu tương ứng với nhiều đối tượng miền. DTO chỉ chứa dữ liệu và các phương thức truy cập và không có logic nào. Dữ liệu dành cho một giao dịch DB cụ thể, vì vậy nó có thể ánh xạ trực tiếp hoặc không trực tiếp tới một đối tượng miền vì nó có thể bao gồm dữ liệu từ một hoặc nhiều đối tượng miền.
- Được sử dụng trên cả hai phía máy chủ và máy khách vì nó được truyền giữa các lớp
- Không có logic kinh doanh
- Không có phương pháp liên quan đến sự bền bỉ
Vì vậy, các câu hỏi:
Cách hiểu trên có đúng không? Tôi có thiếu một số điểm chính?
Có bất kỳ lý do nào để không sử dụng các đối tượng Miền làm Mô hình MVC giả sử rằng các đối tượng Mô hình không yêu cầu thêm logic nghiệp vụ không?
Có bất kỳ lý do nào để không sử dụng DTO làm Mô hình MVC giả sử rằng các đối tượng Mô hình không yêu cầu thêm logic nghiệp vụ không?