MVC Framework là gì?

Khung Model-View-Controller (MVC) là một mẫu kiến trúc 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 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 biệt logic kinh doanh và lớp trình bày với nhau. Nó theo truyền thống được sử dụng cho giao diện người dùng đồ họa máy tính để bàn (GUIs). Ngày nay, kiến trúc MVC đã trở nên phổ biến để thiết kế các ứng dụng web cũng như các ứng dụng di động.

Trong hướng dẫn này, bạn sẽ tìm hiểu thêm về:

Lịch sử MVC

  • Kiến trúc MVC được trygve Reenskaug thảo luận lần đầu tiên vào năm 1979
  • 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ẫu MVC được sử dụng rộng rãi trong các ứng dụng web hiện đại

Các tính năng của MVC

  • Dễ dàng và không ma sát kiểm tra. Khung có thể kiểm tra cao, có thể mở rộng và có thể cắm
  • 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ó ASP.NET, JSP, Django, v.v.
  • Phân tách rõ ràng logic: Model, View, Controller. Tách các tác vụ ứng dụng viz. logic kinh doanh, logic Ul và logic đầu vào
  • Định tuyến URL cho 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
  • Hỗ trợ phát triển theo định hướng thử nghiệm (TDD)

Kiến trúc MVC

Sơ đồ kiến trúc MVC

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

  • Mô hình: Nó bao gồm tất cả dữ liệu và logic liên quan của nó
  • 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

Hãy xem chi tiết về thành phần này:

Xem

Dạng xem là một phần của ứng dụng đại diện cho việc trình bày dữ liệu.

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

Dạng xem cũng thể hiện dữ liệu từ các cuộc trò chuyện, 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 giao diện người dùng như hộp văn bản, danh sách thả xuống, v.v.

Điều khiển

Bộ điều khiển là một phần của ứng dụng xử lý tương tác 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 khi thích hợp.

Bộ điều khiển gửi các lệnh đến 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 các lệnh đến dạng xem được liên kết của nó để thay đổi bản trình bày của dạng 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 chuyển giữa các thành phần bộ điều khiển hoặc bất kỳ logic kinh doanh liên quan nào khác. Ví dụ: một đối tượng Controller sẽ truy xuất 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 chế độ xem và cũng phản hồi các hướng dẫn từ bộ điều khiển để tự cập nhật. Đây cũng là mức thấp nhất của mô hình chịu trách nhiệm duy trì dữ liệu.

Ví dụ VỀ MVC

Hãy xem Model View Controller từ cuộc sống hàng ngày:

Ví dụ 1:

  • Giả sử bạn đi đến một nhà hàng. Bạn sẽ không vào bếp và chuẩn bị thức ăn mà bạn chắc chắn có thể làm tại nhà của bạn. Thay vào đó, bạn chỉ cần đến đó và chờ người phục vụ đến.
  • Bây giờ người phục vụ đến với bạn, và bạn chỉ cần gọi thức ăn. Người phục vụ không biết bạn là ai và bạn muốn anh ta viết ra chi tiết về đơn đặt hàng thực phẩm của bạn.
  • Sau đó, người phục vụ di chuyển đến nhà bếp. Trong bếp bồi bàn không chuẩn bị thức ăn của bạn.
  • Đầu bếp chuẩn bị thức ăn của bạn. Người phục vụ được lệnh của bạn cho anh ta cùng với số bàn của bạn.
  • Nấu sau đó chuẩn bị thức ăn cho bạn. Anh ta sử dụng các thành phần để nấu thức ăn. Hãy giả sử rằng đơn đặt hàng của bạn một chiếc bánh sandwich rau. 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 có nguồn gốc từ tủ lạnh
  • Nấu món ăn cuối cùng cho bồi bàn. Bây giờ công việc của bồi bàn là di chuyển thực phẩm này ra ngoài nhà bếp.
  • Bây giờ bồi bàn biết những thực phẩm bạn đã đặt hàng và làm thế nào chúng được phục vụ.

Trong trường hợp này,

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

Hãy xem thêm một ví dụ nữa,

Example 2:

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

  • Mỗi chiếc xe bao gồm ba bộ phận chính.
  • Xem = 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ơ chế (Động cơ)
  • Mô hình- Lưu trữ (Bình xăng hoặc nước hoa)

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

Khung 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

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

  • Dễ dàng bảo trì mã dễ dàng mở rộng và phát triển
  • Thành phần MVC Model có thể được kiểm tra riêng biệt với người dùng
  • Hỗ trợ dễ dàng hơn cho loại máy khách mới
  • Sự phát triển của 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 một ứ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ột mẫu Front Controller 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 hỗ trợ tốt nhất cho sự phát triển dựa trên thử nghiệm
  • Nó hoạt động tốt cho các ứng dụng Web được hỗ trợ bởi các nhóm lớn các nhà thiết kế và phát triển web.
  • Cung cấp sự tách biệt sạch sẽ của các mối quan tâm (SoC).
  • Tối ưu hóa công cụ tìm kiếm (SEO) thân thiện.
  • Tất cả các lớp và các đối tượng đều độc lập với nhau để bạn có thể kiểm tra chúng một cách riêng biệt.
  • MVC cho phép nhóm hợp lý các hành động liên quan trên bộ điều khiển cùng nhau.

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

  • Khó đọc, thay đổi, để kiểm tra đơn vị và tái sử dụng mô hình này
  • Điều hướng khung có thể phức tạp về thời gian 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 nghi với các tiêu chí phân hủy của MVC.
  • Không hỗ trợ xác thực chính thức
  • Tăng độ phức tạp và không 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.
  • Kiến thức về nhiều công nghệ là bắt buộc.
  • Duy trì nhiều mã trong Bộ điều khiển

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

Tham số Kiến trúc 3 tầng Kiến trúc MVC
Giao tiếp Loại mẫ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ách sử dụng giao diện hình tam giác.
Sử dụng 3 tầng: được sử dụng rộng rãi trong các ứng dụng web nơi 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 riêng biệt về mặt vật lý. 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 duy nhất.

Tóm tắt

  • MVC là một mô hình kiến trúc tách một ứng dụng thành 1) Model, 2) View và 3) Controller
  • Mô hình: Nó bao gồm tất cả dữ liệu và logic liên quan của nó
  • 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 được trygve Reenskaug thảo luận lần đầu tiên vào năm 1979
  • MVC là một khung có thể kiểm tra cao, có thể mở rộng và có thể cắm
  • Một số khung MVC phổ biến là Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP, v.v.