O que é o controlador de visualização modelo?
Model-View-Controller (MVC) é um tipo de arquitetura de software e padrão de design que segmenta cada elemento de um programa em áreas de funcionalidade bem definidas. Na arquitetura do modelo-visualização, o modelo lida com toda a lógica interna do programa que manipula, salva, recupera e, de outra forma, lida e calcula dados. O aspecto da visualização é responsável por exibir informações do modelo para o usuário e também fornece uma maneira de o usuário dar informações ao programa. O controlador recebe a entrada da exibição, avalia ou o processa e interage com o modelo para alterar os dados ou o estado do programa, que finalmente é mostrado ao usuário através da visualização. Embora o design do controlador de modelo-visualizador exige um programa para encapsular a funcionalidade, as três seções ainda precisam interagir entre si de alguma maneira e geralmente dependem uma da outra, em algum sentido, ao contrário de outros padrões de design mais agressivos.
Muitas vezes, o padrão de controlador de visualização modelo é visto em aplicativos que gerenciam uma interface gráfica do usuário (GUI). Usando o padrão MVC, os diferentes elementos visuais da GUI são tratados pela visualização, a gravação e o processamento de onde e o que um usuário clique é tratado pelo controlador e realmente alterando informações ou informações de carregamento são feitas pelo modelo. Dependendo do design exato de um aplicativo, cada componente do padrão MVC pode ter um mecanismo para interagir com os outros componentes, como o modelo capaz de instruir diretamente a exibição para atualizar a tela ou a exibição com uma maneira de dizer ao controlador que está atualizando a tela e não aceitar uma nova entrada. Ao contrário de alguns padrões de design que adotam uma abordagem rigorosa de caixa preta, os programas de controlador de visualização modelo tendem a ser um pouco mais flexíveis, embora algumas implementações possam dificultar a mudança de um programa MVC.
Em certos casos, o padrão de controlador de visualização modelo não precisa conter apenas um de cada componente. Um exemplo é um aplicativo que possui várias visualizações, como vários monitores ou uma tela que pode ser vista em vários dispositivos clientes. Várias visualizações e controladores podem ser usados em um aplicativo que permite que muitos usuários acessem um banco de dados, todos respondendo a um único modelo. É mais comum, no entanto, projetar sistemas que mantêm uma proporção individual dos componentes do Model-View-Controller.
Embora os componentes do controlador de visualização de modelo dependem um do outro, pode ser muito mais fácil modificar certas partes de um sistema que usam o padrão MVC do que se nenhum padrão fosse usado, especialmente no caso de aplicações sem objetos. Se um aplicativo usar retornos de chamada ou ouvintes e observadores para implementar interações entre os componentes, cada componente poderá ser alterado sem afetar os outros dois. Isso significa que uma nova GUI pode ser implementada sem umefetuar o modelo ou controlador. Deve-se observar, no entanto, que mudanças fundamentais em um sistema de visualização de varanda pode exigir uma pequena quantidade de recodificação para cada componente individual.