Atenção: esse artigo tem um vídeo complementar. Clique e assista!

[lead]De que se trata o artigo:

Apresenta a origem e os conceitos fundamentais do paradigma Model-View-Controller (MVC), esclarece como os objetos MVC interagem e mostra a implementação passo a passo de um exemplo em Java SE utilizando este padrão de arquitetura.

Para que serve:

Fornece um meio para criar classes com acoplamento reduzido, alta coesão, que facilita a manutenção e os testes de cada classe isoladamente. O aumento da complexidade das aplicações torna necessário separar os dados da apresentação, de forma que alterações nos dados não provoquem modificações na estrutura da interface e que mudanças na interface não afetem a forma como os dados serão manipulados.

Em que situação o tema é útil:

Reusabilidade e manutenibilidade são métricas de qualidade de software relevantes para a orientação a objetos. Portanto o desenvolvedor Java deve buscar a melhoria destas métricas. E para isso deve criar classes que cumpram suas finalidades sem depender de outras e sejam focadas apenas nas suas responsabilidades. MVC vem ao encontro desses objetivos quando propõe a separação da aplicação em três tipos de classes – model, view e controller.

Criando Aplicações com MVC:

A estrutura de MVC, proposta em 1979 pelo grupo que trabalhava no projeto da linguagem Smalltalk, é utilizada para que o usuário visualize o mesmo modelo de dados simultaneamente sob diferentes pontos de vista. Este paradigma propõe a separação da aplicação em três tipos de objetos, chamados model, view e controller. Para facilitar o entendimento do padrão MVC é desenvolvida uma aplicação simples para criar/visualizar enquetes. O conhecimento de padrões de projeto, tais como Observer e Strategy, pode ser fundamental como base de conhecimento para aplicar MVC no desenvolvimento de software. A aplicação de MVC no desenvolvimento de sistemas contribui para a criação de classes reusáveis e fáceis de manter. [/lead]

Uma aplicação geralmente é formada por um conjunto de códigos de acesso a dados, de regras de negócio e de apresentação ou interface. Quando esses códigos estão misturados vários problemas podem surgir. A interdependência entre esses componentes pode provocar dificuldade de manutenção, impossibilidade de reuso, repetição de código no caso de inclusão de novas apresentações e mesmo o código de acesso a dados pode sofrer os mesmos problemas. O padrão Model-View-Controller (MVC) – em português Modelo-Visão-Controlador – soluciona essas dificuldades na medida em que propõe desacoplar o acesso aos dados e as regras de negócio da maneira como o usuário pode visualizá-los.

[subtitulo]Origem do MVC[/subtitulo]

O MVC foi primeiramente descrito por Trygve Reenskaug em 1979 quando trabalhava no projeto Smalltalk no Centro de Pesquisa da Xerox (Xerox PARC) em Palo Alto, Califórnia. A Interface Gráfica do Usuário (GUI) nasceu no Xerox PARC, e o MVC é o conceito central por trás da GUI em Smalltalk-80. O paradigma MVC foi proposto, segundo o próprio autor, para ser a ponte entre o modelo mental do usuário e o modelo computacional. MVC dá a ilusão ao usuário de ver e manipular diretamente a informação do domínio. A proposta é útil para possibilitar ao usuário visualizar o mesmo modelo sob diferentes contextos e/ou pontos de vista. A Figura 1, adaptada do original, ilustra o conceito proposto por MVC.

Figura 1. Conceito de MVC (Fonte: http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html).

[nota]Smalltalk é uma linguagem orientada a objetos fortemente tipada. Diferente de Java, em Smalltalk não existem tipos primitivos. Tudo é implementado como classe. Por isso, Smalltalk é considerada uma linguagem puramente orientada a objetos. [/nota]

[subtitulo]O que é Model-View-Controller (MVC)? [/subtitulo]

No paradigma MVC as entradas do usuário, o modelo do mundo real e a interface são explicitamente separados e tratados por três tipos de objetos, onde cada um é especializado em suas próprias tarefas. Dizemos que esses três elementos têm baixo acoplamento e alta coesão; são eles:

Modelo (Model) – responsável por manter o estado da aplicação. Ele é mais que uma classe para armazenar os dados, nele devem estar contidas todas as regras de negócio que se aplicam a esses dados. O modelo também é responsável por comunicar-se com o banco de dados, se for necessário;

...
Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo