từ kinh nghiệm của tôi, từng mẫu kiến trúc của những cái đó đã được phát minh để giải quyết vấn đề cụ thể mà cái trước đó đã bỏ qua hoặc chưa được quan sát.
MVC - Trình điều khiển xem mô hình
trong các ứng dụng UI, trách nhiệm hiển thị dữ liệu lên màn hình hoặc logic nghiệp vụ và liên kết chúng với nhau lúc đầu không rõ ràng. Vì vậy, MVC đã xác định trách nhiệm đó đối với ba thành phần, mỗi thành phần có một mục đích và hình ảnh mô tả mối quan hệ giữa ba thành phần đó.
Chế độ xem - là thành phần UI có tất cả các thuộc tính như màu sắc, hình dạng, công cụ để lắng nghe các sự kiện nhấp chuột, v.v.
Mô hình - là thành phần xác định logic nghiệp vụ mà bạn muốn chế độ xem hiển thị và hành xử tương ứng.
Bộ điều khiển - là người thay đổi mô hình, vì vậy nếu chế độ xem có tên để lưu, thì View chuyển nó cho bộ điều khiển sau đó bộ điều khiển thao tác mô hình với các hành động đúng.
MVP - Người dẫn chương trình xem mô hình
vấn đề với MVC là có sự kết hợp tuyệt vời giữa ba thành phần, nếu bạn muốn thay đổi các cuộc gọi xem, nó sẽ yêu cầu bạn cập nhật bộ điều khiển và Model. và điều đó rõ ràng từ bức tranh MVC, mối quan hệ giữa ba thành phần rất ràng buộc, bạn không thể thay thế một trong những thành phần này mà không có thành phần kia. Vì vậy, MVP đã cung cấp một giải pháp rõ ràng hơn cho vấn đề trước đó bằng cách tách Mô hình và Chế độ xem, giữ các tương tác giữa chúng thông qua Người thuyết trình, Người trình bày là người trung gian mà mỗi chế độ xem và mô hình gọi. Vì vậy, nếu bạn muốn lưu danh sách các bộ phim yêu thích, hành động Xem nghe người dùng (*), sau đó gọi hàm người thuyết trình cập nhật mô hình, sau đó mô hình báo cho Người thuyết trình xem điều đó có thành công hay không và Người thuyết trình nói với Chế độ xem để hiển thị đúng thông điệp.
MVVM - Chế độ xem mô hình ViewModel
với sự gia tăng của mô hình phản ứng, rõ ràng là chúng ta có thể cung cấp nhiều mối quan tâm riêng biệt hơn trong Ứng dụng UI bằng cách chỉ quan sát các thay đổi và hành xử trên nó. vì vậy, ví dụ có một nhấp chuột trong chế độ xem cần gọi api để nhận các chương trình truyền hình mới nhất.
lần nhấp này sẽ được quan sát tại ViewModel, ViewModel tương tác với mô hình để lấy dữ liệu và cuối cùng ViewModel đăng những dữ liệu đó lên chế độ xem bằng cách sử dụng trình quan sát khác ..
vì vậy, trong ngắn hạn, View quan sát ViewModel để nhận các bản cập nhật UI và ViewModel quan sát View để gọi hành động đúng với Model. Mẫu quan sát đã chứng minh giá trị của mình trong việc tách logic, vì vậy ở đây bạn đi một Mẫu mới.
Vì vậy, sau khi nói về các mẫu kiến trúc phổ biến nhất, mỗi người đã cố gắng tách mã UI khỏi mã doanh nghiệp. nhưng các mẫu trước đó không ràng buộc cập nhật UI với các trạng thái khác nhau cùng một lúc.
nếu bạn gặp sự cố liên quan đến tải đang xuất hiện cùng với thông báo lỗi, bạn sẽ hiểu tôi đang nói về vấn đề gì, vì vậy để duy trì trạng thái UI, bạn phải nỗ lực thêm để xem những gì bạn đã viết sai gây ra loại vấn đề.
MVI - Ý định người mẫu
MVI dựa trên một ý tưởng cũ gọi là máy trạng thái hữu hạn , bất kỳ hệ thống hoặc thành phần nào cũng có thể dự đoán được, tập hợp các trạng thái là một máy trạng thái hữu hạn. trong MVI, bất kỳ cập nhật nào về UI đều được xác định bởi trạng thái mới, bạn có thể thấy điều này là quá sức, nhưng hãy tưởng tượng rằng bạn có một ảnh chụp màn hình cho mỗi lần thay đổi UI, đó là trạng thái. bạn có thể gỡ lỗi, kiểm tra, tái tạo các vấn đề trạng thái ngay bây giờ.
Làm thế nào để đạt được điều này, đó là MVI trong thực tế.
bất kỳ tương tác người dùng nào với UI, được xác định trong MVI bởi Intent , Intent là những gì người dùng cần từ hành động này, nó có thể là một bộ phim, làm mới màn hình, thậm chí có thể mở màn hình, trong trường hợp đó là Intent một ý định ban đầu để hiển thị màn hình với tất cả dữ liệu cần thiết.
Thành phần nào khiến những Ý định đó hành động theo chúng, đó là những gì bạn xác định .. bạn có thể sử dụng Người thuyết trình hoặc ViewModel, không thành vấn đề, MVI là một cách thực hành hơn là sử dụng thành phần trung gian mới.
Tôi sẽ tiếp tục với ViewModel, ViewModel sẽ nhận được những ý định đó, quyết định nên gọi usecase nào (Hành vi mẫu).
tất cả các giai đoạn chuyển qua chức năng mùa hè trong ViewModel, quyết định trạng thái nào cần được phản ánh cho Chế độ xem, nó cũng cung cấp cho bạn trạng thái trước đó, do đó bạn có trạng thái trước và trạng thái mới để cập nhật màn hình, làm giảm cập nhật kết xuất và View chỉ nhận các gợi ý mới để tự cập nhật.
và cuối cùng MVI là dòng chảy đơn hướng, nó bắt đầu bằng Chế độ xem và kết thúc bằng Chế độ xem.
... Xem -> ViewModel / Người trình bày -> Mẫu -> Xem -> ...
MVI khác biệt trong cách quản lý nhà nước, đó là sự kết hợp của một số ý tưởng để xây dựng ứng dụng ổn định hơn và có thể kiểm tra.