Tiếng Việt | English

06/03/2023 - 11:43

MVC là gì? So sánh MVC và mô hình MVP

MVC hay mô hình MVP là một trong những kiến thức quan trọng dành cho những bạn mới bắt đầu học lập trình. Những kiến thức về mô hình MVC và MVP thường được chia sẻ nhiều trên các diễn đàn mạng và google. Tuy nhiên, không phải trang web nào cũng đưa ra thông tin chính xác.

Hôm nay, hãy cùng VNTALKING tìm hiểu hai mô hình thiết kế phần mềm phổ biến này nhé.


MVC là gì? 

Với những bạn đang tìm hiểu về lập trình web chắc hẳn đã biết về mô hình MVC là gì. Đây là mô hình cấu trúc lập trình website, là viết tắt của Model - View - Controller. Trong đó:

* Model: Là nơi có chức năng tương tác với cơ sở dữ liệu database. Thực hiện các bước đọc, ghi, cập nhật và xoá dữ liệu trong database.

* View: Có chức năng hiển thị ra các kết quả cho người dùng trên màn hình hiển thị. Cũng như nhận các chỉ thị của người dùng như click chuột,... 

* Controller: Là bộ phận có chức năng quan trọng, điều khiển hoạt động của trang web. Controller nhận yêu cầu từ người dùng (View), tiến hành xử lý và gửi yêu cầu đến cho Model để tương tác với dữ liệu. Từ đó, trả về kết quả đến View cho người dùng, cập nhập giao diện hiển thị.

Đây là mô hình phổ biến và thông dụng hiện nay trong lập trình web. Ngoài mô hình MVC ra, người học lập trình cũng cần nắm vững các kiến thức về lập trình hướng đối tượng (OOP) để thao tác làm Web. 

 Mô hình MVP là gì? 

Mô hình MVP là một mô hình rất phổ biến trong cộng đồng Android. Đây là một mô hình tốt với những cải tiến giá trị có thể giải quyết được vấn đề mà những lập trình viên gặp phải.

Mô hình MVP được chia làm 3 layer gồm: Model Layer, View Layer và Presenters Layer. Presenters có 2 nhiệm vụ là:

* Tải dữ liệu từ Model Layer (Database)

* Đẩy dữ liệu lên View Layer sau khi đã xử lý xong.

View Layer thường có các interfaces như: showError(), showProgressindicator(),… cung cấp cho Presenters Layer sử dụng.

So sánh mô hình MVC và mô hình MVP

Điểm chung của hai mô hình này chính là đều hướng đến việc phân tách ứng dụng thành nhiều thành phần nhỏ. Mỗi thành phần nhỏ sẽ chịu trách nhiệm riêng cho một số công việc nhất định.

Điểm khác nhau giữa mô hình MVC và mô hình MVP là: 

* Mô hình MVP có sự liên kết chặt chẽ hơn.

* Giao tiếp giữa các layer của mô hình MVP thông qua interface. Còn trong mô hình MVC thì controller được xem là cầu nối. 

* Mối quan hệ của View và Controller trong MVC là Many - To - One. Còn trong MVP thì Presenter và View có mối quan hệ One - To - One.

* Với mô hình MVC, controller được xem là thành phần quan trọng. Xử lý các thao tác của người dùng nhưng trong mô hình MVP thì View có chức năng quan trọng. 

Ngoài ra, còn nhiều thông tin kiến thức cần thiết về hai mô hình này, cách áp dụng chúng vào các dự án thực tế như thế nào, cũng như cách tối ưu mã nguồn để dự án dễ bảo trì, và nâng cấp. Các bạn có thể tham khảo các bài viết khác trong series về học lập trình phần mềm miễn phí của VNTALKING nhé.

Một số câu hỏi về MVC
Tại sao lại lựa chọn sử dụng mô hình MVC?

* Mô hình MVC phân chia độc lập giữa các thành phần với nhau, đặc biệt là tách phần giao diện ra khỏi business logic của ứng dụng nên sẽ dễ test hơn, dễ mở rộng hơn và dễ bảo trì hơn.

* Đây là mô hình lâu đời và cơ bản, nên hầu hết mọi người khi bắt đầu học lập trình đều được tiếp cận và thực hành sử dụng mô hình này.

Để dùng được mô hình MVC bạn cần kỹ năng gì?

MVC là một mô hình thiết kế phần mềm được vận hành bằng cách kết hợp với các ngôn ngữ lập trình nên việc trang bị kỹ năng, hiểu biết về các ngôn ngữ lập trình như PHP, Java, C#,... là rất quan trọng.

Tóm lại, MVC là một mô hình thiết kế ứng dụng đơn giản nhưng hiệu quả. Bất cứ khi nào bạn học một framework lập trình mới, có thể  bạn sẽ gặp mô hình MVC. Nói cách khác, một khi bạn đã thành thục và áp dụng được MVC vào một vài dự án rồi thì bạn không còn phải ngán bất cứ framework mới nào nữa. Chúc bạn thành công trong sự nghiệp lập trình của mình./.

Thông tin liên hệ: 

VNTALKING

Email: support@vntalking.com

Website: https://vntalking.com

Fanpage: https://facebook.com/vntalking

AT

Chia sẻ bài viết