Mô hình MVC là gì? Ứng dụng của mô hình MVC trong lập trình

Mô hình MVC là gì? MVC có ứng dụng gì trong ngôn ngữ lập trình? Khi sử dụng mô hình này có những ưu nhược điểm gì? Hãy cùng Hostify theo dõi bài viết dưới đây tìm hiểu mô hình MVC nhé.

Mô hình MVC Framework là gì?

Mô hình MVC framework là một mẫu hình kiến trúc phân chia ứng dụng thành 3 thành phần logic chính: Model, View, và Controller. Mỗi thành phần kiến trúc được xây dựng để đảm nhiệm một khía cạnh phát triển cụ thể của ứng dụng. MVC chia tách lớp logic nghiệp vụ và lớp trình bày. Nó thường được sử dụng cho các giao diện đồ họa người dùng desktop (GUI). Ngày nay, kiến trúc MVC trong công nghệ web đã trở nên rất phổ biến trong thiết kế ứng dụng web cũng như ứng dụng di động.

Mô hình MVC là gì
Ưu nhược điêm Mô hình MVC là gì

Lịch sử của MVC

  • Kiến trúc MVC lần đầu được thảo luận vào năm 1979 bởi Trygve Reenskaug.
  • Mô hình MVC lần đầu được giới thiệu vào năm 1987 trong ngôn ngữ lập trình Smalltalk.
  • MVC lần đầu được chấp nhận như một khái niệm phổ quát trong một bài viết vào năm 1988.
  • Gần đây, mẫu hình MVC được sử dụng rộng rãi trong các ứng dụng web hiện đại.

Các đặc điểm của MVC

  • Dễ kiểm tra. MVC là một framework có khả năng kiểm tra (testable), mở rộng (extensible), và kết nối mô-đun (pluggable) cao.
  • Khi thiết kế một kiến trúc ứng dụng web bằng mẫu hình MVC, bạn có toàn quyền kiểm soát mã nguồn HTML lẫn URL.
  • Tận dụng những tính năng hiện có được cung cấp bởi ASP.NET, JSP, Django…
  • Phân chia rõ ràng giữa các logic: Model, View, Controller. Phân chia các tác vụ ứng dụng: logic nghiệp vụ, logic UI, và logic input.
  • Định tuyến URL để tạo ra các URL phù hợp cho SEO. Ánh xạ URL để cho ra những URL dễ hiểu và dễ tìm kiếm
  • Hỗ trợ hướng phát triển kiểm thử (TDD)

Kiến trúc MVC

Dưới đây là kiến trúc chi tiết của MVC framework:

word image 17909 1

3 thành phần quan trong của MVC là:

  • Model: bao gồm mọi dữ liệu và logic liên quan
  • View: trình bày dữ liệu cho người dùng, hoặc xử lý tương tác người dùng
  • Controller: giao diện nằm giữa Model và View

Đi sâu vào chúng để xem có gì hay!

Model

Model chứa dữ liệu và login liên quan. Nó trình bày dữ liệu được truyền đi giữa controller hoặc bất kỳ logic nghiệp vụ liên quan khác. Ví dụ, một controller sẽ nhận thông tin khách hàng từ cơ sở dữ liệu, phân tích và tinh chỉnh dữ liệu rồi gửi ngược lại cho cơ sở dữ liệu hoặc dùng nó để dựng dữ liệu đó.

Nó phản hồi các yêu cầu từ view và các hướng dẫn từ controller để tự cập nhật. Nó còn là mẫu hình cấp độ thấp nhất, đảm nhiệm việc duy trì dữ liệu.

View

View là một phần của ứng dụng, có chức năng trình bày dữ liệu

View được tạo ra bởi dữ liệu thu thập từ dữ liệu model. View yêu cầu model trao thông tin để nó trình bày kết quả cho người dùng.

View còn trình bày dữ liệu từ sơ đồ, biểu đồ, và bảng. Ví dụ, view khách hàng sẽ bao gồm mọi thành phần của UI như text box, drop down…

Controller

Controller là một phần của ứng dụng, có chức năng xử lý tương tác người dùng. Controller diễn dịch thao tác chuột và bàn phím từ người dùng, thông báo cho model và view để thay đổi cho phù hợp.

Controller gửi các câu lệnh đến model để cập nhật trạng thái (ví dụ: lưu tài liệu). Controller còn gửi các câu lệnh đến view tương ứng để thay đổi nội dung của view (ví dụ: cuộn khi xem tài liệu)

Mô hình MVC là gì
Ứng dụng Mô hình MVC

Ví dụ về mô hình MVC

word image 17909 2

Khi vào nhà hàng, bạn không phải vào bếp và chuẩn bị thức ăn, mà đợi bồi bàn đến.

Lúc này bạn gọi món. Bồi bàn không biết bạn là ai và muốn gì, anh ta chỉ viết thông tin về món ăn bạn muốn gọi.

Sau đó anh ta vào bếp, nhưng không phải để chuẩn bị thức ăn.

Đầu bếp là người chuẩn bị thức ăn. Bồi bàn đưa danh sách món bạn đã chọn cùng với số bàn của bạn.

Đầu bếp sẽ chuẩn bị thức ăn cho bạn, sử dụng nguyên liệu để nấu ăn. Giả sử bạn gọi sandwich rau. Đầu bếp sẽ cần bánh mì, cà chua, khoai tây, ở, hành, phô mai…lấy từ tủ lạnh.

Đầu bếp trao món ăn cho bồi bàn. Việc của bồi bàn là đưa thức ăn ra khỏi bếp.

Bồi bàn biết món ăn bạn đã gọi và mang nó ra cho bạn.

Trong ví dụ này: View là bạn, Controller là bồi bàn, Model là đầu bếp, Dữ liệu là tủ lạnh.

Một ví dụ khác:

word image 17909 3

Cơ chế lái xe là một ví dụ khác về mô hình MVC

  • Mọi xe đều có 3 phần chính.
  • View = Giao diện người dùng (cần số, bảng điều khiển, vô lăng, phanh…)
  • Controller = Hệ thống cơ khí (động cơ)
  • Model = bình lưu trữ (xăng hoặc dầu)

Xe chạy nhờ động cơ lấy nhiên liệu từ bình lưu trữ, nhưng chỉ chạy nếu có sự hoạt động của các thiết bị giao diện người dùng đã nêu.

Các web framework MVC phổ biến:

  • Ruby on Rails
  • Django
  • CakePHP
  • Yii
  • CherryPy
  • Spring MVC
  • Catalyst
  • Rails
  • Zend Framework
  • CodeIgniter
  • Laravel
  • Fuel PHP
  • Symphony

Ưu thế của MVC

  • Dễ bảo trì code, từ đó dễ mở rộng hơn
  • Model có thể được kiểm tra độc lập mà không ảnh hưởng đến người dùng
  • Dễ hỗ trợ các loại khách hàng mới hơn
  • Quy trình phát triển các thành phần khác nhau có thể được thực hiện song song
  • Giúp bạn tránh được sự phức tạp bằng cách chia ứng dụng thành 3 phần: Model, View, Controller
  • Chỉ sử dụng mẫu hình Front Controller, vốn xử lý các yêu cầu đến ứng dụng web thông qua một controller đơn nhất
  • Hỗ trợ tốt cho TDD
  • Hoạt động tốt với web app, vốn được ưa chuộng bởi các nhóm nhà phát triển và nhà thiết kế web lớn
  • Ứng dụng nguyên lý chia để trị (SoC)
  • Dễ SEO
  • Mọi class và object độc lập với nhau, cho phép bạn kiểm tra riêng rẽ
  • Mẫu hình thiết kế MVC cho phép gom nhóm các hành động liên quan với nhau trên một controller một cách hợp lý

Nhược điểm của MVC

  • Khó đọc, thay đổi, kiểm tra bộ phận, và tái sử dụng mô hình
  • Định hướng trong framework đôi lúc phức tạp bởi nó có nhiều lớp trừu tượng mới, đòi hỏi người dùng phải thích nghi với các tiêu chí của MVC
  • Không hỗ trợ xác minh chính thức
  • Khiến dữ liệu phức tạp hơn và kém hiệu quả đi
  • Khó sử dụng MVC với giao diện người dùng hiện đại
  • Cần nhiều lập trình viên để lập trình song song
  • Đòi hỏi nhiều kiến thức công nghệ
  • Cần nhiều code trong Controller

So sánh Kiến trúc 3 cấp và Kiến trúc MVC

Tham số

Kiến trúc 3 cấp

Kiến trúc MVC

Giao tiếp

Mẫu hình này không bao giờ giao tiếp trực tiếp với lớp dữ liệu

Mọi lớp giao tiếp trực tiếp thông qua cấu trúc liên kết tam giác

Ứng dụng

Sử dụng rộng rãi trong web app, nơi khách hàng, các cấp dữ liệu, và phần mềm trung gian chạy trên các nền tảng vật lý riêng biệt

Thường được sử dụng trong các ứng dụng chạy trên một workstation đồ họa đơn nhất

Như vậy, qua bài viết này, bạn có thể dễ dàng thấy được rằng mô hình MVC là gì? Ứng dụng của Mô hình MVC trong lập trình như thế nào. Hy vọng, với những thông tin này bạn sẽ có thể ứng dụng nó một cách có hiệu quả. Chúc bạn thành công.

Các tìm kiếm liên quan đến chủ đề “Mô hình MVC”

Các mô hình MVC asp.net mvc
Mô hình Client Server và MVC MVC (Model)
Code mô hình MVC Mô hình MVP
Mô hình MVC là gì Mô hình MVC trong Java

Bài viết liên quan

Học IT ở đâu? Hướng đi của ngành công nghệ thông tin

Top 11 Web Hosting miễn phí dành cho lập trình viên

Ngôn ngữ PHP là gì? Tổng hợp kiến thức cho người mới về PHP