Khái niệm, định nghĩa MVC là gì?

MVC (viết tắt của Model-View-Controller) là một mẫu kiến trúc phần mềm để tạo lập giao diện người dùng trên máy tính. MVC chia một ứng dụng thành ba phần tương tác được với nhau để tách biệt giữa cách thức mà thông tin được xử lý nội hàm và phần thông tin được trình bày và tiếp nhận từ phía người dùng.

THÔNG TIN CHÍNH

Khi sử dụng đúng cách, mẫu MVC giúp cho người phát triển phần mềm cô lập các nguyên tắc nghiệp vụ và giao diện người dùng một cách rõ ràng hơn. Phần mềm phát triển theo mẫu MVC tạo nhiều thuận lợi cho việc bảo trì vì các nguyên tắc nghề nghiệp và giao diện ít liên quan với nhau.

Trong mẫu Model-View-Controller, mô hình (model) tượng trưng cho dữ liệu của chương trình phần mềm. Tầm nhìn hay khung nhìn (view) bao gồm các thành phần của giao diện người dùng. Bộ kiểm tra hay bộ điều chỉnh (controller) quản lý sự trao đổi giữa dữ liệu và các nguyên tắc nghề nghiệp trong các thao tác liên quan đến mô hình.

Mô hình MVC là một kiến trúc thiết kế của một phần mềm công nghê thông tin, trong đó có cả PHP. Khi một phần mềm sử dụng mô hình này thì nó sẽ phải chia ra thành ba phần chính Model-View-Controller (MVC) với  3 nhiệm vụ khác nhau:

  • Model: là thành phần chứa tất cả các 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ý…
  • View: Là phần đảm nhận việc hiển thị thông tin, tương tác với người dùng. Hoặc chúng ta có thể hiểu nôm na đó là phần giao diện của ứng dụng.
  • Controller: Controller là phần xử lý và điều hướng các hành động của client, từ đó đưa ra các xử lý với database nếu có. Hay nói các khác thì controller là cầu nối giữa view và Model.

Giữa model và view không hề có mối liên hệ mà nó sẽ thông qua controller để giao tiếp với nhau.

ƯU VÀ NHƯỢC ĐIỂM CỦA MÔ HÌNH MVC

Bây giờ mình liệt kê một số ưu điểm và nhược điểm của mô hình MVC nhé.

Ưu điểm:

  • Hệ thống phân ra từng phần nên dễ dáng phát triển
  • Chia thành nhiều modun nhỏ nên nhiều người có thể làm chung dự án
  • Vấn đề bảo trì cũng tương đối ok, dễ nâng cấp
  • Dễ dàng debug trong quá trình xây dựng

Nhược điểm:

  • Hệ thống sẽ chạy chậm hơn PHP thuần, tuy nhiên nó ko phải là vấn đề 😀
  • Xây dựng cầu kì và mất thời gian để xây dựng thư viện, cấu trúc.

MVC thể hiện tính chuyên nghiệp trong lập trình, phân tích thiết kế. Do nó được chia thành các thành phần độc lập với các chức năng khác nhau nên nó sẽ dễ dàng nâng cấp, dễ dàng quản lý, dễ dàng hơn trong làm việc nhóm. Tuy nhiên, vì nó chia thành các phần riêng biệt khác nhau nên tốc độ xử lý sẽ chậm hơn so với không áp dụng MVC và nếu như dự án nhỏ mà áp dụng mô hình MVC thì thời gian xây dựng có lẽ sẽ lâu hơn không sử dụng mô hình.