Il modo in cui stai valutando la reattività va contro il principio della separazione delle preoccupazioni. La tua domanda presuppone che la responsività sia una singola responsabilità che appartiene solo a un componente.
Suggerirei che la reattività è un attributo / responsabilità che può essere applicata a più componenti. Per il mio esempio, sto assumendo un generico MVC | MVP | Pattern di tipo MVVM.
La Vista ha sicuramente un ruolo nella reattività dell'applicazione. Gli elementi dell'interfaccia utente e la logica che usi tutti dettano il modo in cui verrà eseguita la visualizzazione. Quindi la vista è responsabile della reattività degli elementi dell'interfaccia utente.
Anche il Controller ha una mano nella reattività dell'applicazione. I tipi di strutture dati e il modo in cui viene elaborata la logica aziendale influenzeranno le prestazioni. Quindi qui, il Controller | Presentatore | ViewModel ha anche la responsabilità per la reattività. Ma questa responsabilità è su diversi elementi rispetto a ciò che è responsabile per la vista.
Infine, il Modello è responsabile delle chiamate di accesso / servizio dati. Vi sono evidenti considerazioni relative alle prestazioni nel modo in cui i dati vengono recuperati e presentati al livello intermedio. Ma ancora, questo è un elemento diverso che deve anche essere reattivo.
Responsiveness
come una proprietà non è la singola responsabilità di un singolo componente. Tutti i componenti devono essere responsabili della propria lavorazione per contribuire all'applicazione complessiva. Una grande interfaccia utente e controller può essere resa inutilizzabile da richieste di dati apparentemente interminabili.
Per quanto riguarda i test, l'utilizzo di un approccio a più livelli funziona ancora a tuo favore per quanto riguarda lo sforzo complessivo e la reattività. Se si dispone di 5 dispositivi e si scrivono singoli livelli per ciascun dispositivo, si avranno 15 componenti da testare. L'utilizzo del pattern MVC * consente di rimuovere 8 componenti dal test poiché si dispone di un modello e un controller comuni. Se quei due livelli eseguono la loro parte di lavoro in modo da essere reattivi, allora devi solo provarli una volta. Puoi quindi concentrare i tuoi sforzi rimanenti sulle 5 viste.