MVC: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
m Desfeita(s) uma ou mais edições de Iuuuk, com Reversão e avisos |
foram adicionadas mais informações sobre as camadas, sobre a história, aplicações web, uma seção somente sobre as vantagens e desvantagens do mvc, e foram adicionadas informações na justificativa. |
||
Linha 9:
== História ==
== Interação dos componentes ==
Linha 17:
* Um '''controlador''' ('''controller''') envia comandos para o modelo para atualizar o seu estado (por exemplo, editando um documento). O controlador também pode enviar comandos para a visão associada para alterar a apresentação da visão do modelo (por exemplo, percorrendo um documento).
* Um '''modelo''' ('''model''') armazena dados e notifica suas visões e controladores associados quando há uma mudança em seu estado. Estas notificações permitem que as visões produzam saídas atualizadas e que os controladores alterem o conjunto de comandos disponíveis. Uma implementação ''passiva'' do MVC monta estas notificações, devido a aplicação não necessitar delas ou a plataforma de software não suportá-las.
* A '''visão''' ('''view''') Gera uma representação (Visão) dos dados presentes no modelo solicitado, fazendo a exibição dos dados, sendo ela por meio de um html ou xml.
== Uso em aplicações web ==
Os frameworks web MVC mais recentes levam uma abordagem de [[thin client]] que
Um caso prático é uma [[aplicação web]] em que a visão é um documento HTML (ou derivado) gerado pela aplicação. O controlador recebe uma entrada <code>GET</code> ou <code>POST</code> após um estímulo do utilizador e decide como processá-la, invocando objetos do domínio para tratar a lógica de negócio, e por fim invocando uma visão para apresentar a saída
== Vantagens e desvantagens ==
'''Vantagens do modelo MVC:'''
# Como o modelo MVC gerencia múltiplos views usando o mesmo modelo é fácil manter, testar e atualizar sistemas compostos;
# É muito simples adicionar novos clientes apenas incluindo seus views e controles;
# Torna a aplicação escalável;
# É possível ter desenvolvimento em paralelo para o modelo, visualizador e controle pois são independentes;
# Facilita o reuso do código;
# Melhor nível de sustentabilidade, pois facilita a manutenção da aplicação;
# Melhor performance, graças a separação em camadas;
# Fácil transformação da interface, sem que haja necessidade de modificar a camada de negócio;
# Melhor desempenho e produtividade, graças a estrutura de pacotes modulares;
# A arquitetura modular permite aos desenvolvedores e designers desenvolverem em paralelo;
# Partes da aplicação podem ser alteradas sem a necessidade de alterar outras.
'''Desvantagens do modelo MVC:'''
# necessita de um valor maior de tempo para explorar e modelar o sistema;
# Requer mão-de-obra especializado;
# À medida que o tamanho e a complexidade do projeto crescem, a quantidade de arquivos e pastas continuará aumentando também. Os interesses de UI (interface do usuário) (modelos, exibições, controladores) se localizam em várias pastas, que não são formadas em grupos por ordem alfabética.
== Justificativa ==
A popularidade dessa arquitetura pode ser vista principalmente no desenvolvimento de aplicações WEB. Isso é uma consequência do ambiente ter um alcance ilimitado e com constante crescimento, onde a escalabilidade é um dos fatores mais importantes.
Com o aumento da complexidade das aplicações desenvolvidas, sempre visando a programação orientada a objeto, torna-se relevante a separação entre os dados e a apresentação das aplicações. Desta forma, alterações feitas no ''layout'' não afetam a manipulação de dados, e estes poderão ser reorganizados sem alterar o ''layout''.
Esse padrão resolve
A separação de propósitos que o paradigma MVC propõem ajuda na escalabilidade e padronização de um produto. Manter um código que cresce constantemente em grandes corporações é uma tarefa árdua, e pequenas equipes também podem sofrer para aumentar a escalabilidade de um produto se não houver um preparo.
Essa divisão de preocupações, ajuda na separação de tarefas e torna-as mais específicas, uma consequência disso é que os códigos possuem um propósito melhor definido, o que facilita no teste e no contexto de seu desenvolvimento e na reutilização do mesmo.
== Plataformas de desenvolvimento ==
|