Tôi sẽ đưa ra một lập luận ủng hộ các Hành động "ngu ngốc".
Bằng cách đặt trách nhiệm thu thập dữ liệu chế độ xem trong Hành động của mình, bạn kết hợp Hành động với các yêu cầu dữ liệu của chế độ xem.
Ngược lại, các Hành động chung, mô tả rõ ràng ý định của người dùng hoặc một số chuyển đổi trạng thái trong ứng dụng của bạn, cho phép bất kỳ Cửa hàng nào phản hồi với Hành động đó chuyển đổi ý định thành trạng thái được thiết kế riêng cho các chế độ xem đã đăng ký.
Điều này có lợi cho nhiều Cửa hàng hơn, nhưng nhỏ hơn, chuyên biệt hơn. Tôi lập luận cho phong cách này bởi vì
- điều này giúp bạn linh hoạt hơn trong cách các chế độ xem sử dụng dữ liệu Store
- Cửa hàng "thông minh", chuyên dành cho các lượt xem sử dụng chúng, sẽ nhỏ hơn và ít được ghép nối cho các ứng dụng phức tạp hơn so với các Hành động "thông minh", nơi có nhiều lượt xem phụ thuộc vào
Mục đích của Cửa hàng là cung cấp dữ liệu cho các chế độ xem. Tên "Hành động" gợi ý cho tôi rằng mục đích của nó là mô tả sự thay đổi trong Ứng dụng của tôi.
Giả sử bạn phải thêm tiện ích con vào chế độ xem Trang tổng quan hiện có, hiển thị một số dữ liệu tổng hợp mới lạ mắt mà nhóm phụ trợ của bạn vừa triển khai.
Với Hành động "thông minh", bạn có thể cần phải thay đổi Hành động "làm mới bảng điều khiển" của mình để sử dụng API mới. Tuy nhiên, "Làm mới bảng điều khiển" theo nghĩa trừu tượng vẫn không thay đổi. Yêu cầu dữ liệu của chế độ xem của bạn là những gì đã thay đổi.
Với Hành động "ngu ngốc", bạn có thể thêm Cửa hàng mới để tiện ích con mới sử dụng và thiết lập nó để khi nhận được loại Hành động "làm mới trang tổng quan", nó sẽ gửi yêu cầu về dữ liệu mới và hiển thị tiện ích con mới khi nó đã sẵn sàng. Tôi hiểu rằng khi lớp xem cần nhiều hoặc nhiều dữ liệu khác nhau, những thứ tôi thay đổi chính là nguồn của dữ liệu đó: Cửa hàng.