Como você está vendo a capacidade de resposta atualmente vai de encontro ao princípio da separação de preocupações. Sua pergunta pressupõe que a capacidade de resposta é uma responsabilidade única que pertence apenas a um componente.
Eu sugeriria que a capacidade de resposta é um atributo / responsabilidade que pode ser aplicada a vários componentes. Para o bem do meu exemplo, estou assumindo um MVC genérico | MVP Padrão de tipo MVVM.
O View certamente tem uma mão na capacidade de resposta do aplicativo. Os elementos da interface do usuário e a lógica que você usa determinam o desempenho da exibição. Portanto, o View é responsável pela capacidade de resposta dos elementos da interface do usuário.
O Controller também tem uma mão na capacidade de resposta do aplicativo. Os tipos de estruturas de dados e como a lógica de negócios é criada afetarão o desempenho. Então aqui, o controlador | Apresentador O ViewModel também é responsável pela capacidade de resposta. Mas essa responsabilidade é sobre elementos diferentes daqueles pelos quais a View é responsável.
Por fim, o Modelo é responsável pelas chamadas de acesso / serviço de dados. Existem considerações óbvias de desempenho sobre como os dados são recuperados e apresentados à camada intermediária. Mas, novamente, este é um elemento diferente que também deve ser responsivo.
Responsiveness
como uma propriedade não é de responsabilidade única de nenhum componente. Todos os componentes devem ser responsáveis por sua própria criação, a fim de contribuir para a aplicação geral. Uma excelente interface de usuário e controlador pode se tornar inútil por solicitações de dados aparentemente intermináveis.
No que diz respeito aos testes, o uso de uma abordagem em camadas ainda funciona a seu favor no que diz respeito ao esforço geral e à capacidade de resposta. Se você possui 5 dispositivos e escreveu camadas individuais para cada dispositivo, teria 15 componentes para testar. O uso do padrão MVC * permite remover 8 componentes dos testes, uma vez que você possui um Model and Controller comum. Se essas duas camadas executam sua parte do trabalho como responsivas, é necessário testá-las apenas uma vez. Você pode então concentrar seus esforços restantes nas 5 visualizações.