Este material faz parte da série “Introdução ao Desenvolvimento Empresarial”. Artigos anteriores:
- sobre a rede ;
- sobre arquitetura de software ;
- sobre protocolos HTTP/HTTPS ;
- sobre os fundamentos do Maven ;
- sobre servlets (estamos escrevendo uma aplicação web simples) ;
- sobre contêineres de servlet .
História do MVC
As ideias para o MVC foram formuladas por Trygve Reenskaug enquanto trabalhava na Xerox PARC no final dos anos 70. Naquela época, para trabalhar com computador era impossível prescindir de um diploma acadêmico e do estudo constante de volumosa documentação. O problema que Reenskaug resolveu junto com um grupo de desenvolvedores muito fortes foi simplificar a interação do usuário médio com um computador. Foi necessário criar ferramentas que, por um lado, fossem extremamente simples e compreensíveis e, por outro, permitissem gerir um computador e aplicações complexas. Reenskaug trabalhou na equipe que desenvolveu o computador portátil “para crianças de todas as idades” - Dynabook, bem como a linguagem SmallTalk sob a direção de Alan Kay. Foi então que os conceitos de uma interface amigável foram estabelecidos. O trabalho de Reenskaug com sua equipe influenciou muito o desenvolvimento da área de TI. Vamos apresentar um fato interessante que não está diretamente relacionado ao MVC, mas ilustra a importância desses desenvolvimentos. Em 2007, após a apresentação do iPhone da Apple, Alan Kay disse: “Quando o Macintosh foi lançado, a Newsweek perguntou o que eu achava dele. Eu disse: este é o primeiro computador pessoal digno de crítica. Após a apresentação, Steve Jobs apareceu e perguntou: o iPhone merece críticas? E eu disse, aumente 12 x 20 cm e você conquistará o mundo.” Três anos depois, em 27 de janeiro de 2010, a Apple lançou o iPad de 9,7 polegadas. Ou seja, Steve Jobs seguiu quase literalmente o conselho de Alan Kay. O projeto em que Rennskaug trabalhou durou 10 anos. E a primeira publicação sobre MVC de seus criadores foi publicada 10 anos depois. Martin Fowler, autor de vários livros e artigos sobre arquitetura de software, menciona que aprendeu MVC com uma versão funcional do SmallTalk. Como há muito tempo não havia informações sobre MVC da fonte primária, bem como por uma série de outras razões, surgiu um grande número de interpretações diferentes deste conceito. Como resultado, muitas pessoas consideram o MVC um esquema ou padrão de design. Menos comumente, o MVC é chamado de padrão composto ou uma combinação de vários padrões que funcionam juntos para implementar aplicativos complexos. Mas, na verdade, como dito anteriormente, MVC é principalmente um conjunto de ideias/princípios/abordagens arquiteturais que podem ser implementados de várias maneiras usando vários padrões... A seguir, tentaremos examinar as principais ideias incorporadas no conceito MVC.O que é MVC: ideias e princípios básicos
- VC é um conjunto de ideias e princípios arquitetônicos para a construção de sistemas de informação complexos com uma interface de usuário;
- MVC é um acrônimo que significa Model-View-Controller.
Etapa 1: Separe a lógica de negócios do aplicativo da interface do usuário
A ideia chave do MVC é que qualquer aplicação com interface de usuário pode, numa primeira aproximação, ser dividida em 2 módulos: um módulo responsável por implementar a lógica de negócio da aplicação e uma interface de usuário. O primeiro módulo implementará as principais funcionalidades do aplicativo. Este módulo será o núcleo do sistema, no qual o modelo de domínio de aplicação será implementado. No conceito MVC, este módulo será a nossa letra M, ou seja, modelo. O segundo módulo implementará toda a interface do usuário, incluindo a exibição de dados ao usuário e a lógica de interação do usuário com a aplicação. O principal objetivo desta separação é garantir que o núcleo do sistema (Modelo na terminologia MVC) possa ser desenvolvido e testado de forma independente. A arquitetura do aplicativo após tal divisão ficará assim:Passo 2. Usando o padrão Observer, obtenha ainda maior independência do modelo, bem como sincronização das interfaces do usuário
Aqui perseguimos 2 objetivos:- Obtenha ainda maior independência do modelo.
- Sincronize interfaces de usuário.
Passo 3. Dividindo a interface em View e Controller
Continuamos a dividir a aplicação em módulos, mas num nível inferior da hierarquia. Nesta etapa, a interface do usuário (que foi separada em um módulo separado na etapa 1) é dividida em uma visualização e um controlador. É difícil traçar uma linha estrita entre uma visualização e um controlador. Se dissermos que a visão é o que o usuário vê e que o controlador é o mecanismo através do qual o usuário pode interagir com o sistema, há alguma contradição. Os controles, como botões em uma página da web ou um teclado virtual na tela do telefone, são essencialmente parte do controlador. Mas eles são tão visíveis para o usuário quanto qualquer parte da visualização. Aqui estamos falando mais sobre divisão funcional. A principal tarefa da interface do usuário é garantir a interação do usuário com o sistema. Isso significa que a interface possui apenas 2 funções:- exibir e exibir convenientemente informações sobre o sistema para o usuário;
- inserir dados e comandos do usuário no sistema (transmiti-los para o sistema);
- Seguindo os princípios do MVC, o sistema precisa ser dividido em módulos.
- O módulo mais importante e independente deve ser o modelo.
- O modelo é o núcleo do sistema. Você precisa ter a capacidade de desenvolvê-lo e testá-lo independentemente da interface.
- Para fazer isso, na primeira etapa da segregação do sistema, é necessário dividi-lo em modelo e interface.
- A seguir, utilizando o padrão Observer, fortalecemos o modelo em sua independência e obtemos a sincronização das interfaces de usuário.
- A terceira etapa é dividir a interface em um controlador e uma visualização.
- Tudo o que é necessário para inserir informações do usuário no sistema está no controlador.
- Tudo o que envia informações do sistema para o usuário está à vista.
GO TO FULL VERSION