MVC, MVP, MVVM: Chọn cái nào?

MVC, MVP, MVVM: Chọn cái nào?

Các ứng dụng hiện đại cần nhiều tính năng đến nỗi quá trình phát triển chúng đã phát triển về quy mô và độ phức tạp. Để giúp đỡ, bạn có thể sử dụng một mẫu thiết kế kiến ​​trúc. Họ hỗ trợ việc xây dựng các ứng dụng dễ kiểm tra và bảo trì.





Ba mẫu thiết kế phổ biến nhất là MVC, MVP và MVVM. MVC là viết tắt của mô hình, chế độ xem và bộ điều khiển, trong khi MVP là viết tắt của mô hình, chế độ xem và người trình bày, và MVVM cho mô hình mô hình, chế độ xem và chế độ xem.





Các mẫu thiết kế và kiến ​​trúc

Mô hình kiến ​​trúc

Một mẫu kiến ​​trúc làm rõ và xác định một số thành phần quan trọng của kiến ​​trúc phần mềm. Mặc dù một mẫu kiến ​​trúc truyền tải hình ảnh của một hệ thống, nó không phải là một kiến ​​trúc . Trên thực tế, nó là một giải pháp chung và có thể tái sử dụng cho một vấn đề thường xảy ra trong kiến ​​trúc phần mềm trong một bối cảnh nhất định.





Mẫu thiết kế

Mẫu thiết kế là một phương pháp hay nhất đã được chính thức hóa mà bạn có thể sử dụng để giải quyết các vấn đề chung khi thiết kế một ứng dụng hoặc hệ thống.

Sự khác biệt giữa mô hình kiến ​​trúc và thiết kế

Hãy bắt đầu với thuật ngữ chung - khuôn mẫu. Trong phần mềm, mẫu là một thuộc tính lặp lại cho phép bạn chia nhỏ một cấu trúc lớn và phức tạp thành các thành phần nhỏ hơn, đơn giản hơn. Bạn có thể sử dụng mẫu này để tạo ra một giải pháp chung cho một nhóm vấn đề.



Ở mỗi cấp độ phát triển phần mềm, bạn sẽ sử dụng các công cụ khác nhau. Ở các cấp độ nhỏ hơn, các công cụ này là các mẫu thiết kế. Các mẫu kiến ​​trúc tồn tại ở các cấp độ lớn hơn, và mô hình lập trình ở cấp độ thực hiện.

Tại sao chúng ta cần các mẫu thiết kế kiến ​​trúc?

Trong quá trình phát triển phần mềm, bạn có thể sử dụng các mẫu thiết kế kiến ​​trúc để giải quyết các vấn đề chung. Kiến trúc tốt cũng có thể giúp bạn:





cách chọn tất cả một màu trong photoshop
  • Chia các nhiệm vụ phức tạp thành các nhiệm vụ đơn giản hơn.
  • Giảm thiểu lỗi.
  • Tạo mã có thể kiểm tra và bảo trì được.

Nhưng nếu không có mẫu kiến ​​trúc, bạn có thể gặp khó khăn trong việc duy trì logic kinh doanh của ứng dụng.

Model, View, ViewModel, Controller và Presenter

Trước khi bạn xem xét từng mẫu, đây là các thuật ngữ tạo nên chúng:





  • Người mẫu lưu trữ dữ liệu và giao tiếp trực tiếp với cơ sở dữ liệu. Mô hình là phần đại diện cho dữ liệu và logic ứng dụng của bạn. Nó xác định các quy tắc kinh doanh quản lý việc xử lý, sửa đổi hoặc xử lý dữ liệu.
  • Lượt xem hiển thị dữ liệu của mô hình và chịu trách nhiệm về việc trình bày dữ liệu trong giao diện người dùng.
  • ViewModel dành riêng cho mẫu MVVM. Đây là một phần trừu tượng của lớp khung nhìn và cũng hoạt động như một trình bao bọc cho dữ liệu mô hình.
  • Bộ điều khiển là thành phần tích hợp khung nhìn và mô hình.
  • Người thuyết trình là một thành phần chỉ tồn tại trong mô hình MVP. Người trình bày nhận đầu vào từ thành phần khung nhìn và xử lý dữ liệu với sự trợ giúp của mô hình.

Mẫu MVC, MVP và MVVM

Mẫu-Chế độ xem-Bộ điều khiển

Các Mô hình kiến ​​trúc MVC là ứng dụng đầu tiên và ngày nay nó phổ biến trong lĩnh vực ứng dụng web. Nó được giới thiệu vào những năm 1970. Mẫu này cho phép bạn xây dựng một ứng dụng xoay quanh Phân tách mối quan tâm (SoC). Nó giúp giảm bớt nỗ lực bạn cần để kiểm tra, duy trì và phát triển ứng dụng của mình.

Trong mô hình MVC, mô hình không hiểu về khung nhìn hoặc bộ điều khiển. Người quan sát mô hình sẽ nhận được cảnh báo bất cứ khi nào có sự thay đổi trong chế độ xem và bộ điều khiển. Bộ điều khiển giúp quá trình định tuyến kết nối mô hình với khung nhìn có liên quan.

Một số ưu điểm của mô hình MVC là:

  • Tách các mối quan tâm (tập trung hơn).
  • Giúp kiểm tra và quản lý mã dễ dàng hơn.
  • Thúc đẩy quá trình tách các lớp của ứng dụng.
  • Tổ chức mã tốt hơn và khả năng tái sử dụng.

Đây là cách MVC hoạt động:

  Hình ảnh sơ đồ minh họa cách thức hoạt động của MVC

Do có SoC, MVC có thể giảm kích thước mã và tạo ra một mã tốt, sạch và dễ quản lý.

Model-View-Presenter Pattern

Mẫu MVP chia sẻ hai thành phần với MVC: mô hình và chế độ xem. Nó thay thế bộ điều khiển bằng người thuyết trình. Người thuyết trình — như tên của nó — được sử dụng để trình bày điều gì đó. Nó cho phép bạn mô phỏng chế độ xem dễ dàng hơn.

Trong MVP, người trình bày có chức năng của 'người trung gian' vì tất cả logic trình bày được đẩy sang nó. Chế độ xem và người trình bày trong MVP cũng độc lập với nhau và tương tác thông qua một giao diện.

Dưới đây là minh họa về cách thức hoạt động của mẫu MVP:

  Hình ảnh sơ đồ minh họa cách thức hoạt động của MVP

Người thuyết trình nhận thông tin đầu vào từ người dùng thông qua khung nhìn. Sau đó, nó xử lý hành động của người dùng với sự trợ giúp của mô hình, chuyển kết quả trở lại chế độ xem. Người trình bày giao tiếp với khung nhìn thông qua các giao diện.

cách truy cập tin nhắn instagram trên máy tính

Model-View-ViewModel Pattern

MVVM là sự phát triển hiện đại của MVC. Mục tiêu chính của MVVM là cung cấp sự tách biệt rõ ràng giữa logic miền và lớp trình bày. MVVM hỗ trợ ràng buộc dữ liệu hai chiều giữa chế độ xem và chế độ xem.

Mẫu MVVM cho phép bạn tách biệt chế độ xem và mô hình mã của mình. Điều này có nghĩa là khi mô hình thay đổi, chế độ xem không cần phải làm như vậy và ngược lại. Sử dụng mô hình chế độ xem, bạn có thể thực hiện kiểm tra đơn vị và kiểm tra hành vi logic của mình mà không liên quan đến chế độ xem của bạn.

Dưới đây là minh họa về cách hoạt động của MVVM:

  Hình ảnh sơ đồ minh họa cách MVVM hoạt động

Khi nào sử dụng MVC, MVP và MVVM

Bây giờ bạn đã tìm hiểu về từng mẫu, hãy tìm hiểu thời điểm sử dụng chúng.

Khi nào sử dụng MVC

MVC chỉ đơn giản là một triển khai của Tách các Mối quan tâm. Nếu ứng dụng của bạn cần tách dữ liệu (mô hình), xử lý dữ liệu (bộ điều khiển) và trình bày dữ liệu (chế độ xem), MVC sẽ hoạt động tốt. MVC cũng phục vụ tốt trong một ứng dụng mà nguồn dữ liệu và / hoặc cách trình bày dữ liệu có thể thay đổi bất cứ lúc nào.

Khi nào sử dụng MVP

Bạn có thể sử dụng MVP khi ứng dụng của bạn có luồng hai chiều. Nếu các tương tác của người dùng cần yêu cầu điều gì đó từ mô hình và kết quả của yêu cầu này sẽ thay đổi giao diện người dùng ngay lập tức, hãy xem xét MVP.

Khi nào sử dụng MVVM

Bạn sẽ muốn sử dụng MVVM khi:

  • Bạn cần chia sẻ một dự án với một nhà thiết kế và công việc thiết kế và phát triển có thể diễn ra độc lập.
  • Bạn yêu cầu thử nghiệm đơn vị cho các giải pháp của mình.
  • Bạn cần có các thành phần có thể sử dụng lại, cả trong và trên các dự án trong tổ chức của bạn.
  • Bạn muốn linh hoạt hơn để thay đổi chế độ xem của mình mà không cần phải cấu trúc lại các logic khác trong cơ sở mã.

Bạn nên chọn mẫu nào?

Lý do chính để sử dụng một mẫu thiết kế là để giảm độ phức tạp. Bạn có thể làm điều này bằng cách giảm độ phức tạp tổng thể hoặc bằng cách thay thế độ phức tạp không quen thuộc bằng độ phức tạp quen thuộc. Nếu một mẫu thiết kế không thể giảm độ phức tạp theo một trong hai cách đó, thì không sử dụng bất kỳ cách nào trong số đó; nó sẽ không thêm bất kỳ giá trị nào.

Nếu bạn thực sự chắc chắn rằng bạn nên sử dụng một mẫu thiết kế, hãy cố gắng tạo một danh sách kiểm tra. Dựa trên các tình huống bạn đã thấy ở đây và chọn cách phù hợp nhất cho dự án của bạn.