ENTENDENDO A TRÍADE MODEL-VIEW-CONTROLLER (MVC) UTILIZANDO PADRÕES DE PROJETO DE SOFTWARE ORIENTADO A OBJETOS
Lucas Furtado de Oliveira
Prof. Fernando Salles Claro
Faculdade Anhanguera de Taubaté
Ciência da Computação
POOPrincípios de
Como Utilizá-los?
Programação Orientada a Objetos
Encapsulamento
Utilizar composição em vez da
herança
Programação para interface
Fraco acoplamento
Aberto / Fechado
Abstrações
Princípio de hollywood
Responsabilidade única
M
V
“Qualquer tolo consegue escrever código que um computador entenda. Bons programadores
escrevem código que humanos possam entender”.(Martin Fowler, 2004)
“Um padrão de projeto de software nomeia, abstrai e identifica os aspectos-chave de uma estrutura de projeto comum para torná-lo útil para a criação de um projeto orientado a objetos reutilizável. O padrão de projeto identifica as classes e instâncias participantes, seus papeis, colaborações e as distribuição de responsabilidades.”
(GAMMA, 1995)
O MVC pode ser visto como um padrão de projeto composto, utilizando os designs patterns Observer, Composite e Strategy.
Os Objetos
Modelos
contém os dados e a lógica do aplicativo..
O modelo deve
notificar todos os objetos
que dependem de seu estado quando algum dado é alterado. É nesse contesto que o padrão
observer é aplicado.
A visão
View é a
representação do modelo gerando a saída gráfica de
forma adequada do usuário.
Visões utilizam o
Composite para a criação de interfaces gráficas para o usuário, utilizando componentes, como painéis, caixa de textos, entre outros, formando várias partes alinhadas, mas ao ser exibida é interpretada como um todo.
O controlador
Controller faz a mediação entre as camadas, interpretando a
entrada de dados e gerenciando o modelo e a visão.
A relação entre a visualização e o controlador utiliza o padrão
Strategy, que consiste em definir uma família de
algoritmos e encapsula-los, permitindo assim que o algoritmo varie sem interferir na
implementação dos clientes..
O MVC é utilizado para criação de aplicações, como na plataforma
Android.As Activitys são responsáveis por controlar os eventos e definir qual Visão será apresentada. Subclasses de android.view.View são utilizadas para criar componentes visuais e gerenciadores de layout, podendo ser definidos por arquivos XML. Modelos podem ser implementados com classes Java tradicionais.
O MVC foi adaptado para atuar no modelo browser/servidor, sendo uma das implementações mais comuns denominado
Modelo 2,
utilizando as tecnologias Enterprise JavaBeans(EJB), JSP e Servlets.
Frameworks Schimidt et al. (2004) “..um conjunto integrado de artefatos de software (como classes, objetos e componentes) que colaboram para fornecer uma arquitetura reusável para uma família de aplicações relacionadas”.
O MVC pode ser ampliado
Utilizar os padrões de criação para instanciar objetos do projeto.
Aplicar o padrão Adapter para adaptar visão à controladores ou modelos.
Adicionar funcionalidades com o padrão Decorator.
Centralizar as requisições a uma aplicação Web com Front Controller.
Utilize a imaginação...
Dúvidas?
Referências• BURBECK, Steve; Applications Programming in Smalltalk-80(TM): How
to use Model-View-Controller (MVC); Disponível em: <http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html> . Acesso em: 06/01/2013.
• DEITEL, Harvey M.; DEITEL, Paul J.; SANTRY, Sean E.. Advanced Java 2 Platform How to Program. New Jersey: Prentice Hall, 2001. 1496 p.
• DEITEL, Harvey M.; DEITEL, Paul J.. Java - como programar. 6. ed. São Paulo: Pearse Education, 2005.
• FREEMAN, Eric; FREEMAN, Elisabeth. Use a cabeça! padrões de projeto: Design Patterns. 2. ed. São Paulo: Alta Books, 2007.
• GAMMA, Eric. et al. Padrões de projeto - soluções reutilizáveis de software orientado a objetos. São Paulo: Bookman, 2000.
• LECHETA, Ricardo R.. Google Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK. 3 ed. São Paulo: Novatec, 2013.
• SIERRA, Kath; BASHAM, Brian. Use a cabeça! servlet e jsp. São Paulo: Alta Books, 2008.
• SOMMERVILLE, Ian. Engenharia de Software. 9 ed. São Paulo: Person Hallm 2011.
Obrigado