Phần 3: Kiến trúc dự án trong Android – MVVM với Data Binding


0
Categories : Android

1. Giới thiệu

Ở hai bài viết trước, chúng ta đã tìm hiểu về MVC và MVP. Tuy nhiên, vấn đề gặp phải ở hai mô hình này là , Các Controller và Presenter theo thời gian sẽ càng phình to ra làm cho việc Maintenance trở nên khó khăn hơn. Chính vì vậy, MVVM là giải pháp tuyệt vời để giải quyết các vấn đề đó.

MVVM + Data Binding mang lại lợi ích cho việc kiểm thử dễ dàng hơn và mô đun, trong khi cũng làm giảm số lượng mã glue mà chúng ta phải viết để kết nối các view + model.

2. Thành phần chính trong MVVM

mvvm
Mô hình MVVM trong Android
  • Model: Giống như hai mô hình trước đó, không thay đổi.
  • View: Bind tới các biến observable và các sự kiện của ViewModel một cách linh hoạt. View bao gồm các tệp .xml và các Activity/Fragment.
  • ViewModel: ViewModel chịu trách nhiệm cập nhật dữ liệu cho Model và chuẩn bị dữ liệu Observable cần thiết cho View. Tuy nhiên ViewModel không gắn với View.

3. Cấu trúc mẫu sử dụng MVVM

Untitled-1.jpg
Cấu trúc dự án Android sử dụng mô hình MVVM

4. Ưu điểm

Unit test càng dễ dàng hơn, bởi vì không còn sự phụ thuộc vào view. Khi kiểm, bạn chỉ cần xác minh rằng các biến Observable được đặt phù hợp khi thay đổi Model.

5. Lưu ý

Vì View hoàn toàn tách rời khỏi ViewModel, do vậy 1 ViewModel có thể được tham chiếu đến nhiều View Khác nhau, từ đó dẫn đến tình trạng gia tăng số lượng mã trong cùn g 1 ViewModel

6. Tham khảo

Bài viết có tham khảo từ: https://academy.realm.io/posts/eric-maxwell-mvc-mvp-and-mvvm-on-android/

Ngoài ra các bạn có thể download dự án mẫu từ github của mình để thao khảo tại đây

Happy coding!

Leave a Reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *