1. Giải thích sự khác nhau của MVC và MVVM:

a. MVC là gì?

Khung MVC là một mẫu kiến ​​trúc phân tách ứng dụng thành ba thành phần logic chính Model, View và Controller. Do đó viết tắt MVC. MVC dạng đầy đủ là Model View Controller.

Trong kiến ​​trúc này, một thành phần được xây dựng để xử lý các khía cạnh phát triển cụ thể của một ứng dụng. MVC tách lớp logic nghiệp vụ và lớp trình bày với nhau. Mẫu kiến ​​trúc này chủ yếu được sử dụng cho giao diện người dùng đồ họa trên máy tính để bàn (GUI).

b. MVVM là gì?

Kiến trúc MVVM tạo điều kiện phân tách sự phát triển của giao diện người dùng đồ họa với sự trợ giúp của ngôn ngữ đánh dấu hoặc mã GUI. Dạng đầy đủ của MVVM là Model – View – ViewModel.

Mô hình xem của MVVM là một bộ chuyển đổi giá trị có nghĩa là mô hình xem có trách nhiệm hiển thị các đối tượng dữ liệu từ Mô hình theo cách mà các đối tượng được quản lý và trình bày dễ dàng.

c. SỰ KHÁC BIỆT CHÍNH

  • MVC framework là một mô hình 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. Mặt khác, MVVM tạo điều kiện phân tách sự phát triển của giao diện người dùng đồ họa với sự trợ giúp của ngôn ngữ đánh dấu hoặc mã GUI
  • Trong MVC, controller là điểm vào Ứng dụng, trong khi trong MVVM, view là điểm vào Ứng dụng.
  • Thành phần Mô hình MVC có thể được kiểm tra riêng biệt với người dùng, trong khi MVVM dễ dàng để kiểm tra đơn vị riêng biệt và mã là hướng sự kiện.
  • Kiến trúc MVC có mối quan hệ “một đến nhiều” giữa Controller & View trong khi trong kiến ​​trúc MVVC, mối quan hệ “một đến nhiều” giữa View & View Model.

2. Mẫu MVC

 

MVC và MVVC
Kiến trúc MVC

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

  • Mô hình: 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.
  • Controller: Giao diện giữa các thành phần Model và View.

Hãy xem chi tiết từng thành phần này:

Mô hình

Thành phần mô hình lưu trữ dữ liệu và logic liên quan. 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 nghiệp vụ liên quan nào khác.

Ví dụ, một đối tượng Controller giúp bạn 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 nó trở lại cơ sở dữ liệu hoặc sử dụng nó để hiển thị cùng một dữ liệu.

Lượt xem

Chế độ xem là một phần của Ứng dụng đại diện cho việc trình bày dữ liệu. Các khung nhìn được tạo bởi dữ liệu thu thập được 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ó phản đối đầu ra cho người dùng.

Chế độ xem cũng đại diện cho dữ liệu từ biểu đồ, sơ đồ và bảng. Ví dụ: bất kỳ chế độ xem khách hàng nào 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.

Bộ đ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 của người dùng. Bộ điều khiển diễn giải đầ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 liên quan của nó để thay đổi cách trình bày của Dạng xem (Ví dụ: cuộn một tài liệu cụ thể).

3. Mẫu MVVM

Đây là một mẫu cho MVVM:

 

MVC và MVVM
Kiến trúc MVVM

Kiến trúc MVVM cung cấp ràng buộc dữ liệu hai chiều giữa chế độ xem và chế độ xem-mô hình. Nó cũng giúp bạn tự động truyền các sửa đổi bên trong View-Model tới chế độ xem. Mô hình khung nhìn sử dụng mẫu người quan sát để thực hiện các thay đổi trong mô hình khung nhìn.

Hãy cùng nhau xem chi tiết thành phần này:

Mô hình

Mô hình lưu trữ dữ liệu và logic liên quan. 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 nghiệp vụ liên quan nào khác.

Ví dụ, một đối tượng Controller sẽ truy xuất thông tin học sinh từ cơ sở dữ liệu của trường. Nó thao tác dữ liệu và gửi nó trở lại cơ sở dữ liệu hoặc sử dụng nó để hiển thị cùng một dữ liệu.

Lượt xem:

Chế độ xem là viết tắt của các thành phần giao diện người dùng như HTML, CSS, jQuery, v.v. Trong chế độ xem mẫu MVVC chịu trách nhiệm hiển thị dữ liệu nhận được từ Bộ điều khiển như một kết quả. Chế độ xem này cũng được chuyển đổi (các) Mô hình thành Giao diện người dùng (UI).

Xem mô hình:

View model có nhiệm vụ trình bày các hàm, lệnh, phương thức, hỗ trợ trạng thái của View. Nó cũng có trách nhiệm vận hành mô hình và kích hoạt các sự kiện trong Chế độ xem.

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

Dưới đây là các tính năng quan trọng của MVC:

  • Khả năng kiểm tra dễ dàng và không ma sát. Khung có thể kiểm tra cao, có thể mở rộng và có thể cắm được
  • Bạn cũng có thể tận dụng các tính năng hiện có được cung cấp bởi ASP.NET, Django, JSP, v.v.
  • Nó cung cấp toàn quyền kiểm soát HTML cũng như các URL của bạn.
  • Nó hỗ trợ Phát triển theo hướng kiểm tra (TDD)
  • Kiến trúc này cung cấp sự tách biệt của logic
  • Cho phép định tuyến cho các URL thân thiện với SEO.
  • Cung cấp ánh xạ cho các URL dễ hiểu và có thể tìm kiếm được.

5. Các tính năng của MVVM

Dưới đây là các tính năng của kiến ​​trúc MVVM:

  • MVVM được viết cho ứng dụng máy tính để bàn với khả năng liên kết dữ liệu – XAML và giao diện INotifyPropertyChanged
  • Nếu bạn muốn sửa đổi trong View-Model, View-Model sử dụng một mẫu quan sát.
  • Mẫu MVVM chủ yếu được sử dụng bởi WPF, Silverlight, nRoute, v.v.

6. Sự khác biệt giữa MVVM và MVC

Đây là sự khác biệt quan trọng giữa MVVM và MVC

MVC và MVVM

MVC MVVM
Bộ điều khiển là điểm vào Ứng dụng. Chế độ xem là điểm vào Ứng dụng.
Một đến nhiều mối quan hệ giữa Controller & View. Một đến nhiều mối quan hệ giữa View & View Model.
Chế độ xem không có tham chiếu đến Bộ điều khiển Chế độ xem có tham chiếu đến Chế độ xem-Mô hình.
MVC là mô hình cũ MVVM là một Mô hình tương đối mới.
Khó đọc, thay đổi, kiểm tra đơn vị và sử dụng lại Mô hình này Quá trình gỡ lỗi sẽ phức tạp khi chúng ta có các ràng buộc dữ liệu phức tạp.
Thành phần mô hình MVC có thể được kiểm tra riêng biệt với người dùng Dễ dàng kiểm tra đơn vị riêng biệt và mã theo hướng sự kiện.

7. Ưu nhược điểm của MVC

Lợi thế của MVC

Đây là ưu điểm / ưu điểm của MVC

  • Hỗ trợ dễ dàng hơn cho một 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ó tránh sự phức tạp bằng cách chia ứng dụng thành các đơn vị (MVC) riêng biệt
  • Nó chỉ sử dụng một mẫu bộ điều khiển phía trước để xử lý các yêu cầu ứng dụng web bằng một bộ điều khiển duy nhất.
  • Cung cấp hỗ trợ tốt nhất cho phát triển theo hướng 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à nhà phát triển web.
  • Nó cung cấp sự tách biệt rõ ràng về các mối quan tâm (SoC).
  • Tất cả các lớp và các đối tượng độ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 một bộ điều khiển với nhau.

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

Đây là nhược điểm / nhược điểm của MVC

  • Logic nghiệp vụ được trộn lẫn với Ul
  • Khó sử dụng lại và thực hiện các bài kiểm tra
  • Không có hỗ trợ xác thực chính thức
  • Tăng độ phức tạp và tính 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 người lập trình để tiến hành lập trình song song.
  • Cần có kiến ​​thức về nhiều công nghệ.

8. Ưu Nhược điểm của MVVM

Ưu điểm của MVVM

Đây là ưu / lợi ích của MVVM

  • Logic nghiệp vụ được tách rời khỏi Ul
  • Dễ dàng bảo trì và kiểm tra
  • Dễ dàng sử dụng lại các thành phần
  • Kiến trúc kết hợp lỏng lẻo: MWM làm cho kiến ​​trúc ứng dụng của bạn được kết hợp lỏng lẻo.
  • Bạn có thể viết các trường hợp kiểm thử đơn vị cho cả lớp mô hình và mô hình mà không cần phải tham chiếu đến Chế độ xem ‘.

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

Đây là nhược điểm / nhược điểm của MVVM

  • Bảo trì nhiều mã trong bộ điều khiển
  • Một số người nghĩ rằng giao diện người dùng đơn giản của kiến ​​trúc MVVM có thể quá mức cần thiết.
  • Không cung cấp sự kết hợp chặt chẽ giữa chế độ xem và mô hình chế độ xem

Link gốc: https://www.guru99.com/mvc-vs-mvvm.html#2