Sunteți pe pagina 1din 7

IFPI Campus Angical

Aluno: Andr Vtor


Disciplina: Programao Comercial
Professor: Ithalo Moura
Turma: Informtica III
Turno: Manh














O Modelo MVC
Model View Controller





















Angical PI Fevereiro de 2014
Padres de Projeto: O modelo MVC - Model View Controller
Os padres de projeto so muito teis para resolver problemas de modelagem de
projetos se usados de forma adequada. Mas o que so estes benditos padres de
projetos ou Design Patterns?
Padres de projetos so solues para problemas que algum um dia teve e resolveu
aplicando um modelo que foi documentado e que voc pode adaptar integralmente ou
de acordo com necessidade de sua soluo. Vou abordar neste artigo o padro de
modelo MVC que tem por objetivo bsico separar a lgica de negcio da apresentao.
O grande desafio das equipes de desenvolvimento de aplicaes cada vez mais
produzir aplicativos seguros, eficientes, de fcil manuteno, reutilizveis e em
prazos cada vez menores.
O paradigma da orientao a objetos tem tido um grande avano nestes ltimos tempos
(leia-se Java e agora .NET), tanto que, segundo o Partner Group, dentre as tecnologias
que vo sobreviver no mercado nos prximos anos esto Java e .NET. Voc ento j
percebeu por que a Microsoft lanou a tecnologia .NET e tornou orientada a objetos o
bom e velho Visual Basic, trazendo consigo o C# para quem usa Java. Estima-se que a
partir de agora ser impensvel produzir aplicaes que no sejam orientadas a objetos
desde sua concepo.
O sucesso para o desenvolvimento de aplicaes com tecnologia orientada a objetos
est intimamente ligada arquitetura que vamos usar para construir a aplicao. A
tendncia indica que esta arquitetura estar baseada na organizao da aplicao em
camadas e na observao dos padres utilizados pelo mercado.
A organizao em camadas a chave para a independncia entre os componentes e
est independncia que vai atingir os objetivos de eficincia, escalabilidade,
reutilizao e facilidade de manuteno.
Num primeiro instante, produzir aplicativos multicamadas pode parecer mais complexo
por isto vou procurar mostrar como evolumos para chegar a esta soluo. O termo
camada pode significar uma separao fsica ou uma camada lgica, no nosso caso,
a produo de software vamos considerar camada como uma referncia a separao
de responsabilidades.
Aplicaes monolticas
Nos tempos antigos do reinado do grande porte e do computador pessoal independente
um aplicativo era desenvolvido para ser usado em uma nica mquina. Geralmente este
aplicativo continha todas as funcionalidades em um nico mdulo gerado por uma grande
quantidade de linhas de cdigo e de manuteno nada fcil. A entrada do usurio,
verificao, lgica de negcio e acesso a banco de dados estava presente em um mesmo
lugar. Podemos definir este tipo de aplicao como aplicao de uma camada ou
monoltica, esquematizada a seguir:

Aplicaes em duas camadas
A necessidade de compartilhar a lgica de acesso a dados entre vrios usurios
simultneos fez surgir as aplicaes em duas camadas. Nesta estrutura a base de dados
foi colocada em uma mquina especfica, separada das mquinas que executavam as
aplicaes. Nesta abordagem temos aplicativos instalados em estaes clientes
contendo toda a lgica da aplicao (clientes ricos ou gordos). Um grande problema
neste modelo o gerenciamento de verses pois para cada alterao os aplicativos
precisam ser atualizados em todas as mquinas clientes.

Aplicaes em trs camadas
Com o advento da internet houve um movimento para separar a lgica de negcio da
interface com o usurio. A ideia que os usurios da WEB possam acessar so mesmas
aplicaes sem ter que instalar estas aplicaes em suas mquinas locais. Como a
lgica do aplicativo, inicialmente contida no cliente rico no reside mais na mquina do
usurio este tipo de cliente passo a ser chamado de cliente pobre ou magro. (Thin).
Neste modelo o aplicativo movido para o Servidor e um navegador Web usado como
um cliente magro. O aplicativo executado em servidores Web com os quais o
navegador Web se comunica e gera o cdigo HTML para ser exibido no cliente.

Neste modelo a lgica de apresentao est separada em sua prpria camada lgica e
fsica. A separao em camadas lgicas torna os sistemas mais flexveis permitindo que
as partes possam ser alteradas de forma independente. As funcionalidades da camada
de negcio podem ser divididas em classes e essas classes podem ser agrupadas em
pacotes ou componentes reduzindo as dependncias entre as classes e pacotes; podem
ser reutilizadas por diferentes partes do aplicativo e at por aplicativos diferentes. O
modelo de 3 camadas tornou-se a arquitetura padro para sistemas corporativos com
base na Web.
A modelagem orientada a objetos ajuda a promover a modularidade pois os objetos
encapsulam seus dados (propriedades, estados) e oferecem funcionalidades atravs de
seus mtodos. Projetando-se de forma adequada os objetos podem ter reduzidas as
dependncias entre si ficando assim fracamente acoplados e sero mais fceis de
manter e evoluir.

O padro MVC
O modelo de trs camadas fsicas (3-tier) divide um aplicativo de modo que a lgica de
negcio resida no meio das trs camadas fsicas. Isto chamado de camada fsica
intermediria ou camada fsica de negcios. A maior parte do cdigo escrito reside na
camada de apresentao e de negcio.
A arquitetura MVC - (Modelo Visualizao Controle) fornece uma maneira de dividir a
funcionalidade envolvida na manuteno e apresentao dos dados de uma aplicao.
A arquitetura MVC no nova e foi originalmente desenvolvida para mapear as tarefas
tradicionais de entrada, processamento e sada para o modelo de interao com o
usurio. Usando o padro MVC fica fcil mapear esses conceitos no domnio de
aplicaes Web multicamadas.
Na arquitetura MVC o modelo representa os dados da aplicao e as regras do negcio
que governam o acesso e a modificao dos dados. O modelo mantm o estado
persistente do negcio e fornece ao controlador a capacidade de acessar as
funcionalidades da aplicao encapsuladas pelo prprio modelo.
Um componente de visualizao renderia o contedo de uma parte particular do modelo
e encaminha para o controlador as aes do usurio; acessa tambm os dados do
modelo via controlador e define como esses dados devem ser apresentados.
Um controlador define o comportamento da aplicao, ele que interpreta as aes do
usurio e as mapeia para chamadas do modelo. Em um cliente de aplicaes Web essas
aes do usurio poderiam ser cliques em botes ou selees de menus. As aes
realizadas pelo modelo incluem ativar processos de negcio ou alterar o estado do
modelo. Com base na ao do usurio e no resultado do processamento do modelo, o
controlador seleciona uma visualizao a ser exibida como parte da resposta a
solicitao do usurio. H normalmente um controlador para cada conjunto de
funcionalidades relacionadas.
A arquitetura de 3 camadas que est representada abaixo uma implementao do
modelo MVC. O modelo MVC est preocupado em separar a informao de sua
apresentao.

Camada de apresentao ou visualizao - No est preocupada em como a
informao foi obtida ou onde ela foi obtida apenas exibe a informao.
inclui os elementos de exibio no cliente: HTML, XML, ASP, Apetes.
a camada de interface com o usurio.
usada para receber a entrada de dados e apresentar o resultado
Camada de lgica da Aplicao - o corao da aplicao. Responsvel por tudo que
a aplicao vai fazer.
modela os dados e o comportamento por atrs do processo de negcios
se preocupa apenas com o armazenamento, manipulao e gerao de dados
um encapsulamento de dados e de comportamento independente da
apresentao.
Camada de Controle - determina o fluxo da apresentao servindo como uma camada
intermediria entre a camada de apresentao e a lgica.
controla e mapeia as aes
Vantagens do modelo MVC:
1. Como o modelo MVC gerencia mltiplos visualizadores usando o mesmo modelo
fcil manter, testar e atualizar sistemas mltiplos
2. muito simples incluir novos clientes apenas incluindo seus visualizadores e
controles
3. Torna a aplicao escalvel
4. possvel ter desenvolvimento em paralelo para o modelo, visualizador e controle
pois so independentes.
Desvantagens do modelo MVC:
1. Requer uma quantidade maior de tempo para analisar e modelar o sistema
2. Requer pessoal especializado
3. No aconselhvel para pequenas aplicaes
Concluso
O padro MVC est relacionado com a arquitetura da aplicao e em como os
componentes se comunicam.
A arquitetura em 3 camadas est relacionada com a arquitetura do Sistema onde voc
divide as responsabilidades em camada de apresentao, de negcio e de acesso
aos dados.
Os conceitos se complementam e podem coexistir harmonicamente sem conflitos. Voc
pode usar o padro MVC para a camada de apresentao de uma arquitetura em
camadas. (O padro MVC tambm pode ser aplicado em aplicaes usando apenas uma
camada.)
Na arquitetura em 3 camadas a comunicao entre as camadas bidirecional e
sempre passa pela camada intermediria

Na arquitetura em 3 camadas a
comunicao entre as camadas
bidirecional e sempre passa
pela camada intermediria

No padro MVC a comunicao
unidirecional.


No padro MVC a comunicao unidirecional.
A regra fundamental em uma arquitetura em trs camadas que a camada de
apresentao (cliente) nunca se comunica diretamente com a camada de dados, em
um modelo de trs camadas toda a comunicao deve passar pela camada de
intermediria.
Conceitualmente a arquitetura de trs camadas linear.
No entanto, a arquitetura MVC triangular: a view envia atualizaes para o controlador,
o controlador atualiza o modelo, e a view atualizada diretamente do modelo.
Martin Fowler define um padro "Application Layered" como uma forma de organizar uma
aplicao de software em um conjunto de camadas lgicas com a finalidade de
gerenciar dependncias e criar componentes plugveis.
O padro MVC define uma abordagem para a interao entre a apresentao e os
componentes de domnio do negcio. Alm disso, o padro MVC no est relacionado
com outros problemas de aplicao, como persistncia, segurana e escalabilidade.
Fowler e Trowbridge consideram a arquitetura "n-tier" como um padro de implantao:
uma forma de organizar a infraestrutura para a execuo das aplicaes desenvolvidas.
Segundo eles, uma aplicao web pode ser implantada em trs camadas: cliente,
aplicaes web e de dados.
Basicamente, eles afirmam que alguns componentes da aplicao podem ser
implementados em um conjunto de mquinas do cliente, outros componentes em um
conjunto de servidores de aplicativos web e outros componentes em um conjunto de
hosts do servidor de dados.
Considerando estes trs nveis, o padro MVC define uma abordagem para conectar
componentes de apresentao na camada do cliente (por exemplo, um telefone celular
ou aplicao de internet), com alguns componentes de servios na camada de aplicao
web. O MVC no define nada sobre a interao entre a camada de aplicao web e
a camada de dados.
Logo: MVC no 3 camadas.

S-ar putea să vă placă și