Avaliação, vantagens e desvantagens do padrão arquitetônico MVC.
MVC — Model-View-Controller (Modelo-Visão-Controlador).
Este padrão de arquitetura de software separa a representação da informação da interação de usuário com um aplicativo em três partes, sendo usada para separar representações de informação internas dos modos como a informação é apresentada para e interagida pelo usuário.
- Model
Define a estrutura de dados como uma forma de modelagem, atualizando o sistema de acordo com as ações do usuário que interage com o programa. Ele gerencia o estado do aplicativo, o que inclui leitura e gravarão de dados, estado persistente do aplicativo e pode até incluir tarefas relacionadas ao gerenciamento de dados. Como por exemplo, o usuário pressiona um botão, e todo modelo deve ser atualizado à partir desta ação. Com isso, a View é atualizada;
2. View
Corresponde à representação gráfica, ou melhor, à expressão da última forma dos dados. Utilizando o mesmo exemplo, o usuário interage com um botão dentro do aplicativo, de uma forma direta sem mexer com código ou modificando o modelo. A View manda a ação do usuário diretamente ao Controller;
3. Controller
Atua como uma interface entre os componentes Model e View para processar toda a lógica de negócios, e solicitações recebidas, manipular dados usando o componente Model e interagir com as Views para renderizar a saída final.
Vantagens da arquitetura MVC:
- O desenvolvimento do aplicativo se torna rápido.
- Fácil para vários desenvolvedores colaborarem e trabalharem juntos.
- Mais fácil de atualizar o aplicativo.
- Mais fácil de depurar, pois temos vários níveis corretamente escritos no aplicativo.
Desvantagens da arquitetura MVC:
- É difícil entender a arquitetura MVC.
- Deve ter regras rígidas sobre métodos.
- Falta de distribuição: O controlador acaba fazendo todo o trabalho. Desde lidar com interações do usuário até configurar visualizações. fazer chamadas de rede, análise de dados e assim por diante.
Não há muito na parte de desvantagens da arquitetura. E as desvantagens não são tão grandes e são muito fáceis de ignorar em comparação com todos os benefícios que obtemos.
https://www.raywenderlich.com/1000705-model-view-controller-mvc-in-ios-a-modern-approach
https://www.tutorialspoint.com/mvc_framework/mvc_framework_introduction.htm