Model-View-Controller
Model-View-Controller, comumente denominado como MVC, é um padrão arquitetural (padrão de projeto). Onde, segundo Gamma et al. (2006, p.20), padrão arquitetural “são descrições de objetos e classes comunicantes que precisam ser personalizadas para resolver um problema geral de projeto num contexto particular”. De acordo com Macoratti (2014), padrão arquitetural ou padrão de projeto “são soluções para problemas que alguém um dia teve e resolveu aplicando um modelo que foi documentado e que você pode adaptar integralmente ou de acordo com necessidade de sua solução”. O MVC divide a representação da informação de sua manipulação e interação com usuários.
O MVC originalmente surgiu como sendo um artefato idiomático na linguagem Smalltalk (Harrison et al. 2007). Segundo Eckstein (2007), o MVC foi utilizado pela primeira vez por Trygve Reenskaug, desenvolvedor do Centro de Pesquisas da Xerox em Palo Alto (EUA), em 1979, o qual tem como objetivo o auxílio na separação da manipulação da informação (regra de negócios, acesso a dados) da maneira em que é exibida ao usuário.
De acordo com Gamma et al. (1995), o MVC emprega os padrões de projeto Observer, Strategy e Composite, onde através do seu uso o sistema é dividido em três camadas:
Model (modelo) - O modelo representa os dados e as regras de negócio (acesso, atualização de dados). O modelo fornece ao controlador a capacidade de acessar as funcionalidades da aplicação encapsuladas pelo próprio modelo;
View (visualização) - A visão mostra o conteúdo de uma parte particular do modelo, onde é especificado exatamente como os dados do modelo devem ser apresentados e caso haja alterações de dados no modelo, a visão deve atualizar sua apresentação, se necessário, ou seja, representa a interface gráfica com o usuário. A visão também encaminha para o controlador as ações do usuário e acessa os dados do modelo via controlador;
Controller (controlador) - O controlador traduz