Agora em diante iremos abordar ao assunto de PADRÕES DA CAMADA DE APRESENTAÇÃO
Serão apresentados neste capítulo padrões para a camada de apresentação. A camada de Apresentação é a parte do sistema onde ficam os objetos responsáveis por fornecer algum serviço a uma entidade externa, seja essa entidade uma pessoa e a resposta em páginas.
Serão apresentados neste capítulo padrões para a camada de apresentação. A camada de Apresentação é a parte do sistema onde ficam os objetos responsáveis por fornecer algum serviço a uma entidade externa, seja essa entidade uma pessoa e a resposta em páginas.
Padrão MVC
Model View Controler (MVC)
O MVC é um padrão que serve para organizar as iterações entre os componentes da camada de apresentação. Esse padrão define três tipos de componentes:
• View são componentes que geram a parte da aplicação visível ao usuário do sistema. Pode ser uma pagina JSP, uma Janela Swing, um arquivo XML, entre outros. A View deve implementar o padrão Observer (FREEMAN et al, [199?]) em cima dos objetos do Model. Sempre que um objeto do Model mudar isso deve ser refletido nas Views que possam estar associadas ao referido objeto e conseqüentemente, nos dados que são mostrados ao usuário.
• Model são os componentes que contém as informações que vão ser mostradas na View. Pode ser o próprio objeto do modelo da aplicação (objeto da Camada de Modelo, Capítulo 4) ou apenas uma interface para os objetos do modelo.
• Controler são os componentes responsáveis por capturar solicitações vindas da View e as despacha para o Model. Além de atualizar a View apropriadamente. Para sistemas simples, onde a camada de aplicação não possui muitas funcionalidades, o Controler acaba as implementando.
É bom ressaltar, os três tipos de componentes acima pertencem a Camada de Apresentação e não são camadas separadas do sistema. Mas para aplicações simples, é aceitável Controler seja utilizando como substituto da Camada de Aplicação e Model como substituto da Camada de Modelo1.
O MVC com todas as suas funcionalidades não é possível de ser implementado em aplicações Web, visto que o protocolo HTTP não permite que o servidor, onde está o modelo, notifique o cliente onde está a View. O que realmente é implementado em aplicações Web é o padrão Front Controller (FOWLER,et al, 2002).
Normalmente não é preciso implementar esse padrão quando vai se desenvolver um sistema. Muitos Frameworks que trabalham com a Camada de Apresentação já o implementam, basta apenas utilizá-lo, como é o caso dos componentes Swing para aplicações desktop em Java.
Existem duas discussões sobre o padrão MVC: separar o Controler da View e separar a View do Model (FOWLER,et al, 2002). A primeira é menos importante e deve ser feita apenas quando a situação realmente exigir. A separação da View do Model é umas das mais importantes indicações de bom design de software. Entre as inúmeras vantagens pode-se citar:
• Desenvolvedores se especializam em apenas em das áreas, ou no design e técnicas de usabilidade de software ou construção de lógica de negócio, acesso a Banco de Dados, desempenho, entre outros. É difícil encontra um desenvolvedor que seja bom nas duas áreas (FOWLER,et al, 2002).
• Geralmente, softwares devem mostrar a mesma informação de maneiras diferente, dependendo do contexto que se tenha, locais e meios de acesso distintos, usuários com diferentes permissões, separar View do Model permite desenvolver múltiplas apresentações para o mesmo conteúdo.
• Objetos não visuais são mais fáceis de serem testados.
O ponto chave para essa separação é que a View pode depender do Model, mas o Model deve ser independente da View. O esquema de dependência do padrão MVC é mostrado na Figura abaixo:
Esquema de dependências do padrão MVC
Nenhum comentário:
Postar um comentário