Tìm hiểu mô hình MVC là gì, What is MVC? What is MVC?
Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nó giúp cho các developer tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller. Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác.

#bl0 Các thành phần trong MVC
Chúng ta khoan hãy refer to đến cách thức nó hoạt động mà hãy xem nó gồm những gì! Đây là mô hình MVC
#bl1 Model
Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý...
#bl1 View
Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tượng GUI như textbox, images...Hiểu một cách đơn giản, nó là tập hợp các form hoặc các file HTML.
#bl1 Controller
Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng... Chẳng hạn thành phần này sẽ nhận request từ url và form để thao tác trực tiếp với Model.

#bl0 MVC làm việc như thế nào?
Nhìn lại sơ đồ phía trên, ta thấy có mũi tên nét liền và những mũi tên nét đứt. Những mũi tên nét đứt được hình thành trên quan điểm của người dùng mà không phải là của những nhà thiết kế phần mềm thực sự. Do đó chúng ta chỉ quan tâm đến những mũi tên còn lại.
#bl1 Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC:
- User tương tác với View, bằng cách click vào button, user gửi yêu cầu đi.
- Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở Model.
- Model nhận thông tin và thực thi các yêu cầu.
- Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lại cho người dùng. @hay

#bl0 Ưu điểm và nhược điểm của MVC
1. Ưu điểm:
Thể hiện tính chuyên nghiệp trong lập trình, phân tích thiết kế. Do được chia thành các thành phần độc lập nên giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp, bảo trì..
2. Nhược điểm:
Đối với dự án nhỏ việc áp dụng mô hình MC gây cồng kềnh, tốn thời gian trong quá trình phát triển. Tốn thời gian trung chuyển dữ liệu của các thành phần.

Đây là ví dụ C# với mô hình MVC #bllink và ví dụ MVC trong PHP #bllink
Cùng SaliproIT Blog chia sẻ Thế giới công nghệ 4 sao