Mô hình MVC là gì?

MVC là viết tắt của Model - View - Controller là một mô hình thiết kế kỹ thuật phần mềm. Source code chia thành ba phần: Model (dữ liệu), View (giao diện) và Controller (bộ điều khiển). Mô hình MVC (MVC pattern) thường được dùng để phát triển giao diện người dùng. Nó cung cấp các thành phần cơ bản để thiết kế một chương trình cho máy tính hoặc điện thoại di động, cũng như là các ứng dụng web.





Model (M): Đây là bộ phận lưu trữ toàn bộ dữ liệu, cầu nối giữa View và Controller. Model có thể đơn giản chỉ là một file XML.

View (V): Đây là nơi chứa các thành phần HTML được tạo ra, chức năng ghi nhận hoạt động của người dùng để tương tác với Controller.

Controller (C): C đưa dữ liệu cho người dùng thông qua View và kết nối với Model.

Luồng tương tác trong MVC: Khi một yêu cầu từ Client tới Server, controller tiếp nhận và xử lý yêu cầu, đó là URL request hay sự kiện.

Controller có thể liên hệ với Model để Model thực hiện các tác vụ liên quan đến Database. Model chuẩn bị data và gửi lại cho Controller. Model sẽ chịu trách nhiệm quản lý dữ liệu từ cơ sở dữ liệu, API hay JSON. 

Controller cũng có thể liên hệ với thẻ View để đưa kết quả cho Client.

Ở đây, View không giao tiếp trực tiếp với Model. Sự tương tác giữa View và Model sẽ chỉ được xử lý bởi Controller.


Kịch bản 1: Người dùng chỉ gửi yêu cầu chuyển từ trang hiện tại sang một trang khác của web không có yêu cầu về dữ liệu.
Kịch bản 2: Người dùng gửi 1 request redirect về 1 trang khác của web có trả về dữ liệu (ví dụ như xem danh sách các Tour đã đặt).
Kịch bản 3: Người dùng chỉ yêu cầu dữ liệu nhưng không chuyển trang

Ưu điểm của MVC:  Bộ control ưu việt trên nền tảng các ngôn ngữ hiện đại, Chức năng Soc (Separation of Concern): Chức năng này cho phép bạn phân tách rõ ràng các phần như Model, giao diện, data, nghiệp vụ. Hệ thống MVC phát triển tốt sẽ cho phép phát triển front – end, back – end cùng trên hệ thống mà không có sự can thiệp, chia sẻ, chỉnh sửa các tập tin trong khi một hoặc hai bên vẫn đang làm việc.


Nhận xét

Bài đăng phổ biến từ blog này

Thương mại hoá y tế

Các IDE hỗ trợ lập trình viên Python

CÁCH XỬ LÝ FILE trong Python