Aulas 25 e 26

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 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 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.

O que o MVC possibilita:

Evita a utilização e proliferação de Spaghetti-Code tão frequentemente existente nas camadas de apresentação;

Desacopla a lógica de negócio da apresentação. Isto permite que uma única view tenha múltiplos controladores. Os controladores definem o comportamento de uma view, assim se uma view requere comportamento diverso, a implementação desses comportamentos deverá residir nos controladores.

Uma vez que o controlador é uma classe separada da view, este pode ser trocado quer em design time quer em runtime.

Se um novo tipo de utilizador for criado que requeira diferente comportamento ou estamos a providenciar uma nova plataforma na nossa aplicação, adicionar um novo controlador para cada view afectada pelas alterações é muito mais fácil do que modificar as próprias views, ou pior ainda ter de criar novas views para endereçar o problema.

Possibilita uma clara distinção entre o trabalho de cada programador ou mesmo equipa. Os designers têm claramente o seu espaço definido nas views, os especialistas do negócio trabalham nos models. Estes dois encontram-se apenas nos controllers.

Potencia a utilização de interfaces e facilidade de utilização de herança em qualquer das camadas minimizando efeitos adversos.

0 comentários:

Postar um comentário