Người dùng tương tác với Chế độ xem , nhưng Chế độ xem phải giao tiếp các hành động với Bộ điều khiển . Bộ điều khiển có thể cập nhật Model , nhưng không bắt buộc với mọi / mọi thay đổi.
Mô tả tôi đang cung cấp dựa trên kinh nghiệm cá nhân của tôi với việc triển khai .NET của MVC. Việc thực hiện của bạn có thể khác nhau.
Bộ điều khiển là nơi các hành động được xử lý, về cơ bản là một lớp nghiệp vụ. Một bộ điều khiển đơn giản sẽ không làm gì khác hơn là lấy dữ liệu từ Model để cung cấp cho View. Bộ điều khiển phức tạp sẽ thực hiện tất cả các loại hành động, cho đến quản lý bảo mật, xác thực, ủy quyền, đăng ký và có thể nhiều thứ khác.
Các Xem chỉ phải chịu trách nhiệm cho việc hiển thị thông tin trong một thời trang mà người dùng có thể hiểu được. Có thể có một số giao thoa ở đây với cả Bộ điều khiển và Mô hình vì những thứ như Ứng dụng trang đơn (SPA) sẽ có phản hồi xác thực dữ liệu cho người dùng. Bất kỳ chéo khác là rất nhiều nhăn mặt.
Các mẫu đề với dữ liệu. Điều này bao gồm xác nhận dữ liệu (nếu có). Lưu trữ và truy xuất dữ liệu cũng được xử lý trong lớp này.
CẬP NHẬT
Dường như có một số nhầm lẫn xung quanh ai làm gì khi nào. Tôi bao gồm hai tổng quan khác nhau về kiến trúc MVC vì chúng giống nhau, nhưng không giống nhau. Có chỗ cho cả hai cách giải thích. Có thể, nhiều hơn nữa. Các mô tả ở trên là sự giải thích của tôi về MVC từ nhiều nguồn, bao gồm cả kinh nghiệm xây dựng các ứng dụng của riêng tôi bằng phương pháp này. Hy vọng, bản cập nhật này sẽ giúp làm sáng tỏ một số nhầm lẫn này.
MVC là một nỗ lực để xây dựng một mẫu thiết kế Tách biệt các mối quan tâm để phát triển phần mềm. Nó chủ yếu được thực hiện trong các ứng dụng dựa trên web (theo hiểu biết của tôi).
Cái nhìn xử lý tất cả các tương tác người dùng. Nếu người dùng của bạn nhấp vào nút, Chế độ xem sẽ xác định xem lần nhấp đó là tương tác giao diện người dùng hay thứ gì đó nằm ngoài mối quan tâm của nó (tương tác Bộ điều khiển). Nếu nút thực hiện thao tác sao chép giá trị từ trường này sang trường khác, việc triển khai của bạn sẽ xác định xem đó là mối quan tâm của Chế độ xem hay mối quan tâm của Trình điều khiển. Rất có thể bạn sẽ chỉ làm mờ đi những lo ngại này khi làm việc với Ứng dụng một trang (SPA).
Bộ điều khiển là nơi hành động của bạn được xử lý. Chế độ xem đã thông báo cho người dùng quyết định thay đổi giá trị cho một số trường. Bộ điều khiển có thể thực hiện xác nhận trên dữ liệu đó hoặc có thể được Mô hình xử lý. Một lần nữa đây là phụ thuộc thực hiện. Nếu Bộ điều khiển có các tính năng bảo mật, nó có thể xác định rằng người dùng không có đủ đặc quyền để thực hiện hành động. Nó sẽ từ chối các thay đổi và cập nhật Chế độ xem phù hợp. Bộ điều khiển cũng xác định dữ liệu nào cần lấy từ Mô hình, cách đóng gói và cập nhật Chế độ xem với dữ liệu đó.
Các mẫu xác định như thế nào và nơi để lưu trữ dữ liệu. Nó cũng có thể thực hiện xác thực dữ liệu đó trước khi lưu trữ dữ liệu đó (nên thực hiện việc này vì mọi người sẽ bỏ qua Chế độ xem đôi khi).
Wikipedia có một bài viết về MVC .
- Một mô hình thông báo cho các khung nhìn / khung nhìn và bộ điều khiển liên quan của nó khi có sự thay đổi trạng thái của nó. Thông báo này cho phép các khung nhìn cập nhật phần trình bày của chúng và bộ điều khiển để thay đổi bộ lệnh có sẵn. Trong một số trường hợp, việc triển khai MVC thay vào đó có thể là "thụ động", do đó các thành phần khác phải thăm dò mô hình để cập nhật thay vì được thông báo.
- Một khung nhìn được trình điều khiển cho biết tất cả thông tin cần thiết để tạo đại diện đầu ra cho người dùng. Nó cũng có thể cung cấp các cơ chế chung để thông báo cho bộ điều khiển đầu vào của người dùng.
- Bộ điều khiển có thể gửi lệnh đến mô hình để cập nhật trạng thái của mô hình (ví dụ: chỉnh sửa tài liệu). Nó cũng có thể gửi các lệnh đến chế độ xem được liên kết của nó để thay đổi cách trình bày mô hình của chế độ xem (ví dụ: bằng cách cuộn qua tài liệu).
Từ Tổng quan về Microsoft của MVC .
Mô hình. Các đối tượng mô hình là các phần của ứng dụng triển khai logic cho miền dữ liệu của ứng dụng. Thông thường, các đối tượng mô hình lấy và lưu trữ trạng thái mô hình trong cơ sở dữ liệu. Ví dụ: một đối tượng Sản phẩm có thể truy xuất thông tin từ cơ sở dữ liệu, vận hành trên đó và sau đó ghi thông tin cập nhật trở lại bảng Sản phẩm trong cơ sở dữ liệu SQL Server.
Trong các ứng dụng nhỏ, mô hình thường là một sự tách biệt về khái niệm thay vì vật lý. Ví dụ, nếu ứng dụng chỉ đọc một tập dữ liệu và gửi nó đến dạng xem, ứng dụng không có lớp mô hình vật lý và các lớp liên quan. Trong trường hợp đó, bộ dữ liệu đảm nhận vai trò của một đối tượng mô hình.
Lượt xem. Lượt xem là các thành phần hiển thị giao diện người dùng (UI) của ứng dụng. Thông thường, UI này được tạo từ dữ liệu mô hình. Một ví dụ sẽ là chế độ xem chỉnh sửa của bảng Sản phẩm hiển thị hộp văn bản, danh sách thả xuống và hộp kiểm dựa trên trạng thái hiện tại của đối tượng Sản phẩm.
Bộ điều khiển. Bộ điều khiển là các thành phần xử lý tương tác của người dùng, làm việc với mô hình và cuối cùng chọn chế độ xem để hiển thị giao diện người dùng. Trong một ứng dụng MVC, khung nhìn chỉ hiển thị thông tin; bộ điều khiển xử lý và đáp ứng đầu vào và tương tác của người dùng. Ví dụ, bộ điều khiển xử lý các giá trị chuỗi truy vấn và chuyển các giá trị này cho mô hình, do đó có thể sử dụng các giá trị này để truy vấn cơ sở dữ liệu.