2011-10-30 30 views
9

Trừ khi tôi hiểu sai - Hầu hết các bài viết tôi đọc trên MVVM giải thích mô hình trong MVVM là phần giữ miền/logic nghiệp vụ, nhưng điều khiến tôi khó hiểu là MVVM là một mẫu lớp trình bày và lớp trình bày không giữ toàn bộ logic kinh doanh. Có thể một số xin vui lòng giúp tôi hiểu làm thế nào miền-logic trong lớp kinh doanh bản đồ để các mô hình trong lớp trình bày, là mô hình trong MVVM thực sự là một DTO? Tôi đánh giá cao nếu một số người có thể giúp giải thích bằng một ví dụ về cách lớp nghiệp vụ được ánh xạ tới mô hình MVVM trong SOA (logic nghiệp vụ nằm phía sau dịch vụ web). Cảm ơn.Mô hình MVVM

+0

Xem câu trả lời của tôi ở đây và các nhận xét mà mọi người đã trao cho nó. Tôi nghĩ quá thường xuyên MVC và MVVM bị hiểu lầm và những người mà Mô hình và Bộ điều khiển có thay thế DataModel và Logic kinh doanh. Trong tầm nhìn của tôi cả MVVM và MVC chỉ ở cấp UI để giữ thành phần ui tách biệt bởi một số thao tác cơ bản hoặc logic UI khác vì vậy tôi nghĩ câu trả lời của tôi trong đó áp dụng cho cả MVC và MVVM. –

+0

Rất tiếc, tôi không thể thấy bất kỳ URL nào, bạn có thể vui lòng chỉnh sửa và đăng lại không. Cảm ơn. –

+0

xin lỗi tôi đã quên nó: D http://stackoverflow.com/questions/7474267/mvc3-and-entity-framework/7474357#7474357 –

Trả lời

1

MVVM, như MVC, chỉ là một dạng Bản trình bày riêng biệt, trong đó mục đích là để đạt được sự phân tách mối quan tâm giữa phần ứng dụng liên quan đến logic và trạng thái giao diện người dùng và một phần của ứng dụng liên quan đến logic và trạng thái liên quan đến miền kinh doanh. Vì vậy, MVVM không thực sự dictate bất cứ điều gì về hình thức mà một phần Model mất miễn là nó được tách ra từ các mối quan tâm trình bày.

Mô hình cố ý không được kết hợp hoặc phụ thuộc vào bất kỳ cách nào trên các khía cạnh trình bày của ứng dụng nhưng ngoài ra còn có nhiều cách khác nhau để thực hiện phần "M" của bộ ba. Đặc biệt, nó không phải ánh xạ tới một đối tượng duy nhất: nó có thể có nghĩa là tương tác với một dịch vụ trả về DTO, nó có nghĩa là xuất bản và đăng ký các tin nhắn trên một bus tin nhắn hoặc nó có thể có nghĩa là truy xuất các đối tượng miền đại diện cho các thực thể trong tên miền, phương pháp gọi trên chúng và sau đó kéo dài chúng. Điều thực sự độc đáo về mẫu MVVM là vai trò của ViewModel trong đó vì mục đích của nó là biểu diễn trạng thái của giao diện người dùng theo cách có thể được tiêu thụ bởi công nghệ Xem có khả năng dữ liệu phong phú. Nếu không có hỗ trợ databinding phong phú, bạn sẽ sử dụng một hình thức khác nhau của bài trình bày tách biệt như MVC hoặc MVP, nhưng phần "M" vẫn có thể giống nhau bởi vì nó độc lập với công nghệ UI theo định nghĩa. Đó là yếu tố quan trọng.

0

Rất thường Mô hình được đóng gói bởi chính ViewModel. Bạn phải tách riêng Model và ViewModel khi thiết kế nó có thể là ViewModel duy nhất sử dụng các Mô hình khác nhau. Nhưng thực sự đây là một trường hợp hiếm hoi nên ViewModel có thể trực tiếp làm việc với các dịch vụ.

Nếu một ViewModel có thể phục vụ các kiểu mô hình khác nhau, có thể được thay thế từng cái một - hãy giới thiệu lớp mô hình riêng biệt, trừu tượng hóa chúng bằng giao diện và đưa vào ViewModel thích hợp nếu không View và ViewModel là đủ.

1

Mô hình trong MVVM không có ở tất cả DTO. DTO là đối tượng chuyển dữ liệu. Nó giống như các lớp thực thể. Về cơ bản nó được sử dụng để chuyển dữ liệu từ một lớp này sang lớp khác; chẳng hạn như Lớp trình bày thành Lớp kinh doanh hoặc Lớp kinh doanh cho Lớp truy cập dữ liệu.

Và Mô hình chủ yếu bao gồm Logic nghiệp vụ. Lớp trình bày thông qua mô hình xem gọi logic nghiệp vụ của mô hình như khi được yêu cầu.

Các vấn đề liên quan