Hướng dẫn về MVC Framework cho người mới bắt đầu: Là gì, Archikiến trúc & Ví dụ

Khung MVC là gì?

Model-View-Controller (MVC) framework là một mẫu kiến ​​trúc phân tách một ứng dụng thành ba thành phần logic chính Model, View và Controller. Do đó, viết tắt là MVC. Mỗi thành phần kiến ​​trúc được xây dựng để xử lý khía cạnh phát triển cụ thể của một ứng dụng. MVC tách logic nghiệp vụ và lớp trình bày khỏi nhau. Theo truyền thống, nó được sử dụng cho giao diện người dùng đồ họa (GUI) trên máy tính để bàn. Ngày nay, kiến ​​trúc MVC trong công nghệ web đã trở nên phổ biến để thiết kế các ứng dụng web cũng như ứng dụng di động.

Lịch sử của MVC

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

Đặc điểm của MVC

  • Khả năng kiểm tra dễ dàng và không ma sát. Khung có khả năng kiểm tra cao, mở rộng và có thể cắm được
  • Để thiết kế kiến ​​trúc ứng dụng web bằng mô hình MVC, nó cung cấp toàn quyền kiểm soát HTML cũng như URL của bạn
  • Tận dụng các tính năng hiện có được cung cấp bởi ASP.NET, JSP, Django, v.v.
  • Phân tách logic rõ ràng: Model, View, Controller. Phân tách các tác vụ ứng dụng như logic nghiệp vụ, logic Ul và logic đầu vào
  • Định tuyến URL cho các URL thân thiện với SEO. Ánh xạ URL mạnh mẽ cho các URL dễ hiểu và có thể tìm kiếm được
  • Hỗ trợ phát triển dựa trên thử nghiệm (TDD)

VMC Archikiến trúc

Sau đây là kiến ​​trúc chi tiết của khung MVC:

VMC Archikiến trúc
VMC Archisơ đồ kiến ​​trúc

Ba thành phần MVC quan trọng là:

  • Model: Nó bao gồm tất cả dữ liệu và logic liên quan của nó
  • Chế độ xem: Trình bày dữ liệu cho người dùng hoặc xử lý tương tác của người dùng
  • Bộ điều khiển: Giao diện giữa các thành phần Model và View

Chúng ta cùng nhau xem chi tiết thành phần này nhé:

Xem

Chế độ xem là một phần của ứng dụng thể hiện việc trình bày dữ liệu.

Lượt xem được tạo bởi dữ liệu được thu thập từ dữ liệu mô hình. Một khung nhìn yêu cầu mô hình cung cấp thông tin để nó trình bày bản trình bày đầu ra cho người dùng.

Chế độ xem cũng biểu diễn dữ liệu từ biểu đồ, sơ đồ và bảng. Ví dụ, bất kỳ chế độ xem khách hàng nào cũng sẽ bao gồm tất cả các thành phần UI như hộp văn bản, danh sách thả xuống, v.v.

Người điều khiển

Bộ điều khiển là một phần của ứng dụng xử lý sự tương tác của người dùng. Bộ điều khiển diễn giải các đầu vào chuột và bàn phím từ người dùng, thông báo cho mô hình và chế độ xem để thay đổi cho phù hợp.

Bộ điều khiển gửi lệnh tới mô hình để cập nhật trạng thái của nó (Ví dụ: Lưu một tài liệu cụ thể). Bộ điều khiển cũng gửi lệnh đến chế độ xem được liên kết của nó để thay đổi cách trình bày của chế độ xem (Ví dụ: cuộn một tài liệu cụ thể).

Mô hình

Thành phần mô hình lưu trữ dữ liệu và logic liên quan của nó. Nó đại diện cho dữ liệu đang được truyền giữa các thành phần của bộ điều khiển hoặc bất kỳ logic nghiệp vụ liên quan nào khác. Ví dụ: đối tượng Controller sẽ lấy thông tin khách hàng từ cơ sở dữ liệu. Nó thao tác dữ liệu và gửi trở lại cơ sở dữ liệu hoặc sử dụng nó để hiển thị cùng một dữ liệu.

Nó đáp ứng yêu cầu từ các khung nhìn và cũng đáp ứng các hướng dẫn từ bộ điều khiển để tự cập nhật. Đây cũng là cấp độ thấp nhất của mẫu chịu trách nhiệm duy trì dữ liệu.

Ví dụ về MVC

Hãy xem ví dụ về Model View Controller trong cuộc sống hàng ngày:

Ví dụ 1

Ví dụ về MVC

  • Giả sử bạn đi đến một nhà hàng. Bạn sẽ không vào bếp và chuẩn bị đồ ăn mà bạn chắc chắn có thể làm ở nhà. Thay vào đó, bạn đến đó và đợi người phục vụ tới.
  • Bây giờ người phục vụ đến chỗ bạn và bạn gọi đồ ăn. Người phục vụ không biết bạn là ai và bạn muốn gì, anh ta chỉ viết ra chi tiết món ăn của bạn.
  • Sau đó, người phục vụ di chuyển vào bếp. Trong bếp, người phục vụ không chuẩn bị thức ăn cho bạn.
  • Người đầu bếp chuẩn bị đồ ăn cho bạn. Người phục vụ sẽ nhận được đơn đặt hàng của bạn cùng với số bàn của bạn.
  • Nấu ăn sau đó chuẩn bị thức ăn cho bạn. Anh ấy sử dụng nguyên liệu để nấu thức ăn. Giả sử bạn đặt mua một chiếc bánh sandwich rau củ. Sau đó, anh ta cần bánh mì, cà chua, khoai tây, ớt chuông, hành tây, bit, phô mai, v.v. mà anh ta lấy từ tủ lạnh
  • Nấu ăn cuối cùng bàn giao thức ăn cho người phục vụ. Bây giờ công việc của người phục vụ là di chuyển thức ăn này ra ngoài bếp.
  • Bây giờ người phục vụ biết bạn đã gọi món nào và chúng được phục vụ như thế nào.

Trong ví dụ về kiến ​​trúc MVC này,

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

Hãy xem thêm một ví dụ về mô hình MVC,

Ví dụ 2

Ví dụ về MVC

Cơ cấu lái ô tô là một ví dụ khác của mô hình MVC.

  • Mỗi chiếc xe bao gồm ba 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, v.v.)
  • Bộ Điều Khiển- Cơ Khí (Động Cơ)
  • Model- Kho chứa (Bình xăng hoặc bình Diesel)

Ô tô chạy bằng động cơ lấy nhiên liệu từ kho lưu trữ nhưng chỉ chạy bằng các thiết bị giao diện người dùng đã đề cập.

Các khuôn khổ web MVC phổ biến

Dưới đây là danh sách một số khung MVC phổ biến:

Ưu điểm của MVC: Lợi ích chính

Sau đây là những lợi ích chính của việc sử dụng kiến ​​trúc MVC:

  • Bảo trì mã dễ dàng, dễ mở rộng và phát triển
  • Thành phần Mô hình MVC có thể được kiểm tra riêng biệt với người dùng
  • Hỗ trợ dễ dàng hơn cho các loại khách hàng mới
  • Việc phát triển các thành phần khác nhau có thể được thực hiện song song.
  • Nó giúp bạn tránh sự phức tạp bằng cách chia ứng dụng thành ba đơn vị. Mô hình, chế độ xem và bộ điều khiển
  • Nó chỉ sử dụng mẫu Bộ điều khiển phía trước để xử lý các yêu cầu ứng dụng web thông qua một bộ điều khiển duy nhất.
  • Cung cấp sự hỗ trợ tốt nhất cho hướng phát triển thử nghiệm
  • Nó hoạt động tốt cho các ứng dụng Web được hỗ trợ bởi đội ngũ lớn các nhà thiết kế và phát triển web.
  • Cung cấp sự phân tách rõ ràng các mối quan tâm (SoC).
  • Thân thiện với Công cụ Tìm kiếm Tối ưu hóa (SEO).
  • Tất cả các lớp và đối tượng đều độc lập với nhau nên bạn có thể kiểm tra chúng một cách riêng biệt.
  • Mẫu thiết kế MVC cho phép nhóm hợp lý các hành động liên quan trên bộ điều khiển lại với nhau.

Nhược điểm của việc sử dụng MVC

  • Khó đọc, thay đổi, kiểm tra đơn vị và sử dụng lại mô hình này
  • Quá trình điều hướng khung có thể phức tạp đôi khi vì nó giới thiệu các lớp trừu tượng mới đòi hỏi người dùng phải thích ứng với tiêu chí phân tích của MVC.
  • Không hỗ trợ xác nhận chính thức
  • Tăng tính phức tạp và kém hiệu quả của dữ liệu
  • Khó khăn khi sử dụng MVC với giao diện người dùng hiện đại
  • Cần có nhiều lập trình viên để tiến hành lập trình song song.
  • Cần có kiến ​​thức về nhiều công nghệ.
  • Bảo trì nhiều mã trong Bộ điều khiển

3 tầng Archikiến trúc so với MVC Archikiến trúc

Tham số 3-Cấp Archikiến trúc VMC Archikiến trúc
Giao tiếp Kiểu kiến ​​trúc này không bao giờ giao tiếp trực tiếp với lớp dữ liệu. Tất cả các lớp giao tiếp trực tiếp bằng cấu trúc liên kết tam giác.
Sử dụng 3 tầng: được sử dụng rộng rãi trong các ứng dụng web trong đó máy khách, tầng 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 trên các ứng dụng chạy trên một máy trạm đồ họa.

Tổng kết

  • MVC là một mô hình kiến ​​trúc phân tách một ứng dụng thành 1) Mô hình, 2) Chế độ xem và 3) Bộ điều khiển
  • Model: Nó bao gồm tất cả dữ liệu và logic liên quan của nó
  • Chế độ xem: Trình bày dữ liệu cho người dùng hoặc xử lý tương tác của người dùng
  • Bộ điều khiển: Giao diện giữa các thành phần Model và View
  • Kiến trúc MVC lần đầu tiên được thảo luận vào năm 1979 bởi Trygve Reenskaug
  • Kiến trúc MVC trong Java là một khung có khả năng kiểm tra cao, có thể mở rộng và có thể cắm được
  • Một số framework MVC phổ biến là Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP, v.v.