MVVM - Ưu điểm
Mẫu MVVM cuối cùng là cấu trúc hiện đại của mẫu MVC, vì vậy mục tiêu chính vẫn giống nhau để cung cấp sự tách biệt rõ ràng giữa logic miền và lớp trình bày. Dưới đây là một số ưu điểm và nhược điểm của mẫu MVVM.
Lợi ích chính là cho phép tách biệt thực sự giữa Chế độ xem và Mô hình ngoài việc đạt được sự tách biệt và hiệu quả mà bạn đạt được khi có điều đó. Điều đó có nghĩa là trong điều kiện thực tế là khi mô hình của bạn cần thay đổi, nó có thể được thay đổi dễ dàng mà không cần chế độ xem và ngược lại.
Có ba điều chính quan trọng phát sinh khi áp dụng MVVM như sau.
Khả năng bảo trì
Việc tách biệt rõ ràng các loại mã khác nhau sẽ giúp bạn dễ dàng đi vào một hoặc một số phần chi tiết và tập trung hơn và thực hiện các thay đổi mà không cần lo lắng.
Điều đó có nghĩa là bạn có thể vẫn nhanh nhẹn và tiếp tục chuyển sang các bản phát hành mới một cách nhanh chóng.
Khả năng kiểm tra
Với MVVM, mỗi đoạn mã chi tiết hơn và nếu nó được triển khai đúng cách thì các phần phụ thuộc bên ngoài và bên trong của bạn sẽ nằm trong các đoạn mã riêng biệt từ các phần có logic cốt lõi mà bạn muốn kiểm tra.
Điều đó làm cho việc viết các bài kiểm tra đơn vị dựa trên logic cốt lõi dễ dàng hơn rất nhiều.
Đảm bảo rằng nó hoạt động đúng khi được viết và tiếp tục hoạt động ngay cả khi mọi thứ thay đổi trong quá trình bảo trì.
Khả năng mở rộng
Đôi khi nó trùng lặp với khả năng bảo trì, vì ranh giới phân tách rõ ràng và các đoạn mã chi tiết hơn.
Bạn có cơ hội tốt hơn để làm cho bất kỳ bộ phận nào trong số đó có thể tái sử dụng nhiều hơn.
Nó cũng có khả năng thay thế hoặc thêm các đoạn mã mới làm những việc tương tự vào đúng vị trí trong kiến trúc.
Mục đích rõ ràng của mẫu MVVM là trừu tượng hóa Chế độ xem, làm giảm số lượng logic nghiệp vụ trong mã phía sau. Tuy nhiên, sau đây là một số lợi thế vững chắc khác -
- ViewModel dễ kiểm tra đơn vị hơn so với mã phía sau hoặc mã hướng sự kiện.
- Bạn có thể kiểm tra nó mà không cần tự động hóa và tương tác giao diện người dùng khó xử.
- Lớp trình bày và lớp logic được kết hợp lỏng lẻo.
Nhược điểm
- Một số người nghĩ rằng đối với giao diện người dùng đơn giản, MVVM có thể quá mức cần thiết.
- Tương tự như vậy trong các trường hợp lớn hơn, có thể khó thiết kế ViewModel.
- Gỡ lỗi sẽ hơi khó khăn khi chúng ta có các ràng buộc dữ liệu phức tạp.