Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 14 de Janeiro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
138 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  O conceito e as dúvidas sobre o MVC
Publicado por rboaro : Domingo, Janeiro 13, 2013 - 07:41 GMT-3 (603 leituras)
Comentários 4 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
André Celestino Feliz ano novo, leitores! O primeiro artigo de 2013 traz uma dúvida comum entre os programadores a respeito do MVC, que na verdade acaba se tornando uma má compreensão. Neste artigo pretendo esclarecer alguns fatos sobre o MVC e ressaltar o seu principal objetivo dentro do desenvolvimento de um sotfware. Vamos nessa?
MVC? O que é isso?
Bom, pra começar, MVC é o acrônimo de Model-View-Controller (em português, Modelo-Visão-Controle) e que, como o próprio nome supõe, separa as camadas de uma aplicação em diferentes níveis. Ao contrário do que muitos desenvolvedores dizem, o MVC não é um Padrão de Projeto, mas sim um Padrão de Arquitetura de Software. Essa é uma das dúvidas que mencionei no enunciado do artigo. Na época da faculdade, ouvia muitos alunos comentarem que o “projeto do TCC foi desenvolvido utilizando o Design Pattern MVC”, sem notarem que estavam errados. Apesar do MVC introduzir uma forma de desenvolvimento, ele não pode ser considerado um Padrão de Projeto, uma vez que este é especialmente relacionado com a arquitetura do software. Lembre-se de que existem 23 padrões de projeto (Design Patterns) e o MVC não está entre eles.
Pois bem, embora existam outros padrões de arquitetura de software – como Pipeline, Blackboard, Microkernel e Reflection – o MVC é um dos mais difundidos e utilizados pelos desenvolvedores principalmente pela funcionalidade e objetividade. O MVC define a divisão de uma aplicação em três componentes: Modelo, Visão e Controle. Cada um destes componentes tem uma função específica e estão conectados entre si. O objetivo é separar a arquitetura do software para facilitar a compreensão e a manutenção do software.
A camada de Visão é relacionada ao visual da aplicação, ou seja, as telas que serão exibidas para o usuário. Nessa camada apenas os recursos visuais devem ser implementados, como janelas, botões e mensagens. Já a camada de Controle visa a implementação das regras de negócio e validações, como a verificação de valores nulos ou validação de valores válidos, por exemplo. E por fim, temos a camada de Modelo, que consiste nas classes do sistema e o acesso aos dados. Observe que cada camada tem uma tarefa distinta dentro do software.


Explicação do conceito sobre MVC

Certo, mas qual é a vantagem?
A princípio, pode-se dizer que o sistema fica mais organizado quando está estruturado com MVC. Um desenvolvedor novo que começar a trabalhar no projeto não terá grandes dificuldades em compreender a estrutura do código. Além disso, as exceções são mais fáceis de serem identificadas e tratadas. Ao invés de revirar o código atrás do erro, o MVC pode indicar em qual camada o erro ocorre. Outro ponto importante do MVC é a segurança da transição de dados. Através da camada de Controle, é possível evitar que qualquer dado inconsistente chegue à camada de Modelo para persistir no banco de dados. Imagine a camada de Controle como uma espécie de Firewall: o usuário entra com os dados e a camada de Controle se responsabiliza por bloquear os dados que venham a causar inconsistências no banco de dados. Portanto, é correto afirmar que essa camada é muito importante.

Posso ter apenas três camadas no MVC?
Eis que essa é outra dúvida bastante questionada pelos desenvolvedores. Embora o MVC sugira a organização do sistema em três camadas, nada impede que outras camadas sejam criadas para expandir a compreensão do projeto. Por exemplo, vamos supor que um determinado projeto tenha um módulo web para consulta de dados. Aonde esse módulo se encaixaria dentro das três camadas?
Bem, este módulo poderia ser incluso na camada de Visão, mas seria bem mais conveniente criar uma camada exclusiva (como “Web”), e agrupar todos os itens relacionados a esse módulo dentro dessa camada. O mesmo funcionaria para um módulo Mobile ou WebService. É claro, neste caso o projeto não estará exatamente estruturado em MVC, mas estará seguindo os princípios fundamentais, que é o essencial.
Quando desenvolvi o meu projeto na faculdade, também me deparei com a necessidade de uma camada adicional: a camada de acesso ao banco de dados.

Mas o acesso ao banco de dados não é uma função da camada de Modelo?
Sim, é. Inclusive muitos profissionais preferem denominar a classe de Modelo como Business Object Model, responsável pela modelagem e acesso ao banco de dados ao mesmo tempo. Mas essa é uma premissa particular de cada desenvolvedor. No meu caso, achei melhor manter as classes do projeto (modelagem) e o acesso ao banco de dados em camadas diferentes. Sendo assim, criei uma camada exclusiva para o acesso ao banco de dados conhecida como DAO (Data Access Object) ou DAL (Data Access Layer). É uma camada bem simples, apenas com os objetos de conexão com o banco de dados e as instruções SQL, mas que proporcionou uma melhor organização no meu código, resultando na arquitetura abaixo:


Arquitetura MVC com camada adicional

Mas lembre-se: um projeto com várias camadas torna-se tão confuso quanto um projeto de uma camada só. Separe a implementação quando notar que a mesma camada está realizando duas ou mais tarefas diferentes, e que dividindo-as tornará o projeto mais compreensível.
Fico por aqui, pessoal.
Abraço!

Link Original do Artigo:
http://www.subrotina.com.br/o-conceito-e-as-duvidas-sobre-o-mvc/



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: GabrielLampa (gabriellampa@gmail.com) : Jan 14, 2013 - 05:41
(Informações sobre o membro | Enviar uma mensagem) http://lampasoftware.com.br
Parabéns Pelo exelente Artigo,
Caiu como uma luva pra mim,pois estou estudando/implementando o MVC+DAO em uma aplicação DataSnap.

Aproveitando a oportunidade,tem um E-Mail para que eu possa tirar uma Duvida?

Desde já grato e mais uma vez parabens pelo Artigo.


por: wanderson_02 (wanderson_02@yahoo.com.br) : Jan 19, 2013 - 08:53
(Informações sobre o membro | Enviar uma mensagem) http://http://
Muito Claro seu Artigo. Parabéns


por: cf-design (cf-design@hotmail.com) : Ago 14, 2014 - 05:39
(Informações sobre o membro | Enviar uma mensagem) http://www.rondoniareal.com.br
excelente


por: cf-design (cf-design@hotmail.com) : Ago 14, 2014 - 05:40
(Informações sobre o membro | Enviar uma mensagem) http://www.rondoniareal.com.br
excelente artigo...
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados