Nếu có bất kỳ vấn đề nào trong quá trình phát triển phần mềm, thì mẫu thiết kế của nó là giải pháp chính để khắc phục điều này. Chúng giống như các bản thiết kế được xác định trước mà chúng tôi sử dụng để giải quyết các vấn đề thiết kế hướng đối tượng trong dự án của bạn.
Đầu tiên, nó tìm ra vấn đề nằm ở đâu và sau đó khắc phục nó, đồng thời mô tả quy trình và hậu quả của nó. MVC và MVC2 là hai cách tiếp cận khác nhau đối với mẫu kiến trúc MVC (Model View Controller) nổi tiếng.
Các nội dung chính
- MVC tách logic ứng dụng thành Model, View và Controller, trong khi MVC2 tăng cường sự tách biệt này với hai loại Controller: Application và View.
- MVC sử dụng một Bộ điều khiển duy nhất để xử lý đầu vào của người dùng, trong khi Bộ điều khiển Ứng dụng của MVC2 quản lý chức năng được chia sẻ và Bộ điều khiển Chế độ xem xử lý các tác vụ dành riêng cho chế độ xem.
- MVC2 cải thiện khả năng sử dụng lại và khả năng bảo trì bằng cách giảm sự phụ thuộc giữa các thành phần so với MVC.
MVC so với MVC2
MVC là một mẫu thiết kế phần mềm tách một ứng dụng thành ba thành phần được kết nối với nhau: mô hình, dạng xem và bộ điều khiển. MVC được sử dụng rộng rãi trong phát triển web. MVC2, còn được gọi là “Mô hình 2”, là một biến thể của mẫu MVC tách bộ điều khiển thành hai phần riêng biệt: bộ điều khiển phía trước và bộ điều phối. Mẫu này thường được sử dụng trong các khung phát triển web.

MVC là phương pháp tiếp cận thế hệ đầu tiên trong các ứng dụng web Java, trong đó các trang JavaServer Page (JSP) được sử dụng làm giao diện người dùng cùng với JavaBeans có thể đóng gói nhiều đối tượng trong một đối tượng duy nhất để triển khai kiến trúc MVC.
Yêu cầu của người dùng từ trình duyệt được gửi đến JSP, nơi chứa logic Controller và liên kết Model để lấy dữ liệu, từ đó cập nhật chế độ xem và gửi phản hồi trở lại cho người dùng, phản hồi này sẽ được hiển thị trên giao diện người dùng.
Cách tiếp cận này kết hợp chức năng Bộ điều khiển và Chế độ xem trong một trang JSP và do đó phá vỡ mô hình MVC.
MVC2 được Sun Microsystem org giới thiệu dưới dạng một mẫu thiết kế không phá vỡ mô hình MVC, không giống như MVC, nơi logic nghiệp vụ được tách biệt khỏi các dạng xem và tất cả các yêu cầu của máy khách được xử lý tại một nơi thay vì trong từng tệp JSP trong MVC.
Trong mẫu MVC2, JSP được thay thế bằng các servlet cho logic của bộ điều khiển.
Bảng so sánh
Tham số so sánh | VMC | MVC2 |
---|---|---|
Định nghĩa | Trong MVC, một thành phần duy nhất chịu trách nhiệm nhận yêu cầu và gửi phản hồi. | Trong MVC2, có nhiều thành phần để nhận yêu cầu và gửi phản hồi. tức là Bộ điều khiển & Chế độ xem. |
THÔNG TIN | Trong MVC, mỗi JSP có một bộ điều khiển và logic xem xác định điều hướng của trang xem tiếp theo làm cho nó được phân phối lại | Trong MVC2, servlet chứa logic điều hướng của trang xem tiếp theo làm cho nó tập trung |
Mất thời gian | Mất nhiều thời gian hơn để viết mã để phát triển các thẻ JSP tùy chỉnh để tránh thẻ scriptlet | Mất ít thời gian hơn để phát triển vì tất cả các điều khiển điều hướng được tập trung. |
Độc lập | Logic nghiệp vụ và logic trình bày được kết hợp trong JSP, vì vậy các nhà thiết kế web và nhà phát triển web không thể làm việc đồng thời. | Vì nó có sự tách biệt giữa logic và chế độ xem, đó là lý do tại sao nhà thiết kế và nhà phát triển có thể làm việc cùng nhau. |
Tái sử dụng | Khó tái sử dụng và mở rộng hơn do sự kết hợp chặt chẽ giữa logic và chế độ xem | Thật dễ dàng để tái sử dụng và mở rộng, phù hợp với các ứng dụng lớn hơn |
MVC là gì?
MVC là một mẫu thiết kế kiến trúc dành cho các vấn đề lặp lại trong thiết kế phần mềm, cung cấp cách tiếp cận mô tả cấp cao cho giải pháp. Kiến trúc MVC có ba mô-đun: mô hình, chế độ xem và bộ điều khiển.
Model: Nó đại diện cho trạng thái của dữ liệu (được hiển thị cho người dùng trên trang xem).
Lượt xem: Mô-đun xem là giao diện người dùng thông qua đó người dùng thực hiện hành động và giao tiếp nội bộ với máy chủ.
Người điều khiển: Mô-đun bộ điều khiển xử lý yêu cầu của người dùng và logic nghiệp vụ, đồng thời với sự trợ giúp của một mô hình, sẽ thao tác dữ liệu được hiển thị trong giao diện người dùng.
MVC bắt đầu với JSP chấp nhận yêu cầu của máy khách hoạt động cùng với JavaBeans cho logic xử lý dữ liệu được gửi tới máy khách.
Công việc được phân chia giữa JavaBeans và JSP, trong đó JSP gọi JavaBeans và logic nghiệp vụ, trong đó JavaBeans gọi nội bộ cơ sở dữ liệu để lưu/lấy dữ liệu. Cuối cùng, JSP gửi lại phản hồi cho máy khách, phản hồi này sẽ cập nhật chế độ xem trong trình duyệt.
JavaBeans, còn được gọi là Beans, chịu trách nhiệm đóng gói nhiều đối tượng vào một đối tượng duy nhất, trong khi JSP có cả logic Bộ điều khiển và Chế độ xem.
MVC cũng được gọi là tập trung vào trang vì nó có quyền truy cập trực tiếp vào một trang xem khác, lý tưởng cho các ứng dụng nhỏ hơn.
MVC2 là gì?
Hầu hết các kỹ sư phần mềm nghĩ rằng MVC2 là phiên bản cải tiến của MVC, giống như phiên bản 2.0; không phải vậy. Mô hình 1 và Mô hình 2 được phát triển đồng thời và là hai biến thể về cách mọi thứ nên được thực hiện.
MVC2 là một mẫu phức tạp hơn trong đó việc tách rời trạng thái Ứng dụng và Logic điều khiển bản trình bày được thực hiện.
Nó có một bộ điều khiển trong đó logic đã được viết để xử lý tất cả các yêu cầu đến và hành động bắt buộc cần được thực hiện, chẳng hạn như điều hướng đến một trang xem khác hoặc cập nhật trạng thái của Mô hình.
Ở đây, trong MVC2, servlet đóng vai trò là lớp điều khiển, cũng là giao diện giữa lớp Chế độ xem và lớp Mô hình, trong đó nó nhận yêu cầu từ máy khách hoặc giao diện Người dùng, không gì khác ngoài lớp chế độ xem và xử lý chúng với xác thực phù hợp nếu được yêu cầu.
JSP có logic khung nhìn sử dụng Bean bên trong, vì vậy nếu các servlet cập nhật trạng thái của mô hình, nó sẽ được phản ánh trong trang khung nhìn.
Không giống như MVC, JSP trong MVC2 không có cả bộ điều khiển và khung nhìn logic; trách nhiệm duy nhất của nó là tìm nạp trạng thái cập nhật của mô hình từ servlet đó để hiển thị trên Trang xem.
Sự khác biệt chính giữa MVC và MVC2
Chúng tôi nhầm lẫn MVC2 là phiên bản 2.0 của MVC, tuy nhiên, không phải vậy, đó là các mô hình thiết kế Java trong đó kiến trúc MVC2 phức tạp hơn và phù hợp nhất cho các ứng dụng lớn hơn.
Yếu tố phân biệt giữa MVC và mối quan hệ MVC2 có thể được tóm tắt trên các cơ sở sau:
- Trong MVC, một thành phần duy nhất chịu trách nhiệm nhận yêu cầu và gửi phản hồi nhưng trong MVC2, và có nhiều thành phần để nhận yêu cầu và gửi phản hồi. tức là Bộ điều khiển & Chế độ xem.
- MVC1 kết hợp chặt chẽ logic trình bày với logic nghiệp vụ, nhưng MVC 2 cô lập hoặc tách rời logic trình bày khỏi logic nghiệp vụ.
- Trong MVC, Logic nghiệp vụ và Logic trình bày được kết hợp trong JSP, vì vậy nhà thiết kế web và nhà phát triển web không thể làm việc đồng thời, nhưng trong MVC2, có sự tách biệt giữa logic và chế độ xem, đó là lý do tại sao nhà thiết kế và nhà phát triển có thể làm việc cùng nhau.
- Trong MVC 1, cả bộ điều khiển và mô hình đều là JSP hoặc chúng ta có thể nói chúng được viết trong cùng một JSP. Nhưng trong MVC2, bộ điều khiển là một servlet và mô hình là một lớp Java.
- MVC Không hỗ trợ khả năng sử dụng lại các thành phần ứng dụng, trong khi MVC2 hỗ trợ khả năng sử dụng lại các thành phần, điều này tốt cho các ứng dụng lớn hơn và phức tạp hơn.