Mô Hình MVVM là gì?

Article ID: 873
Cập nhật gần nhất: 27 Th12, 2021

Mô Hình MVVM là gì?

Nhắc đến lập trình web chắc hẳn các bạn đã nghe qua và biết đến mô hình MVC (Model - View - Controller), tuy nhiên ngoài ra chúng ta còn một mô hình nữa đó là MVVM (Model - View - ViewModel), đây là một mô hinhd kiến trúc được các lập trình viên sử dụng cho các ứng dụng dùng ngôn ngữ XML để định nghĩa giao diện ứng dụng như Windows Phone, Windows RT, Universal Apps,… Lợi ích của mô hình này là mang lại sự tách biệt về thiết kế giao diện và lập trình logic không phụ thuộc nhau.

Lịch sử hình thành

Kể từ khi Microsoft cho ra mắt hai nền tảng phát triển ứng dụng mới đó là WPF và Silverlight. Trên nên tảng đó đã có nhiều thay đổi trong việc xử lý sự kiện và binding dữ liệu, giữa các tầng của ứng dụng với nhau. Vì vậy, nảy sinh ra nhu cầu phải có một mô hình phát triển ứng dụng mới phù hợp hơn. Do vậy Model – View – ViewModel (MVVM) pattern ra đời và ngày càng trở nên phổ biến, phát triển hơn.

Cấu trúc chi tiết của mô hình MVVM

  1. View: Tương tự như trong mô hình MVC, View là phần giao diện của ứng dụng để hiển thị dữ liệu và nhận tương tác của người dùng. Một điểm khác biệt so với các ứng dụng truyền thống là View trong mô hình này tích cực hơn. Nó có khả năng thực hiện các hành vi và phản hồi lại người dùng thông qua tính năng binding, command.
  2. Model: Cũng tương tự như trong mô hình MVC. Model là các đối tượng giúp truy xuất và thao tác trên dữ liệu thực sự.
  3. ViewModel: Lớp trung gian giữa View và Model. ViewModel có thể được xem là thành phần thay thế cho Controller trong mô hình MVC. Nó chứa các mã lệnh cần thiết để thực hiện data binding, command.

Trong các mô hình truyền thống, chúng ta thường xử lý sự kiện Click và viết mã thực thi trực tiếp ở trên một Button nhưng với mô hình MVVM không cho phép làm điều này.
Trong mô hình MVVM, các điều khiển(control) như Button, ListView, SearchBar, v.v. không thể kết buộc trực tiếp đến dữ liệu mà phải thông qua thuộc tính Command – là một thuộc tính kiểu ICommand.

Ưu nhược điểm của MVVM: Model – View – ViewModel

Ưu điểm:

  • Thực hiện Unit testing bây giờ sẽ rất dễ dàng, vì bạn thực sự không phụ thuộc vào view.
  • MVVM sẽ tạo sự tương tác hiệu quả giữa designer và developer.
  • Tăng khả năng sử dụng lại các thành phần hay việc thay đổi giao diện chương trình mà không cần phải viết lại code quá nhiều.
  • Phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp, bảo trì…

Nhược điểm :

  • Khả năng duy trì khi view có thể gán cả biến và biểu thức, các logic không liên quan sẽ tăng dần theo thời gian, ảnh hưởng đến việc thêm code vào XML.
  • Đối với dự án nhỏ việc áp dụng mô hình MVVM gây cồng kềnh, tốn thời gian trong quá trình phát triển. Tốn thời gian trung chuyển dữ liệu của các thành phần.
  • Đối với dự án lớn hơn, nó gây khó khăn và mất thời gian để thiết kế các ViewModel.
  • Việc liên kết dữ liệu cho tất cả các thành phần gây khó khăn trong việc debug khi cơ sở dữ liệu phức tạp.

Kết Luận:

MVVM là một mô hình được khá nhiều lập trình viên sử dụng, kết hợp với những lợi thế của data binding đem đến một pattern có khả năng phân chia các thành phần với từng chức năng riêng biệt, dễ dàng trong việc maintain, redesign. MVVM cũng đem lại khả năng test rất dễ dàng, giúp làm việc hiệu quả hơn cho lập trình viên.

Như vậy mình đã giới thiệu sơ qua cho các bạn về mô hình MVVC, hy vọng thông tin trên giúp ích cho các bạn trong quá trình học tập của mình.

Đánh giá bài hướng dẫn:  
Báo cáo một vấn đề
Article ID: 873
Cập nhật gần nhất: 27 Th12, 2021
Lần sửa đổi: 1
Lượt xem: 0