Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software...

22
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

Transcript of Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software...

Page 1: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

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

Page 2: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

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

Page 3: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

M

V

“Qualquer tolo consegue escrever código que um computador entenda. Bons programadores

escrevem código que humanos possam entender”.(Martin Fowler, 2004)

Page 4: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos
Page 5: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

“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)

Page 6: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

O MVC pode ser visto como um padrão de projeto composto, utilizando os designs patterns Observer, Composite e Strategy.

Page 7: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

Os Objetos

Modelos

contém os dados e a lógica do aplicativo..

Page 8: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

O modelo deve

notificar todos os objetos

que dependem de seu estado quando algum dado é alterado. É nesse contesto que o padrão

observer é aplicado.

Page 9: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos
Page 10: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

A visão

View é a

representação do modelo gerando a saída gráfica de

forma adequada do usuário.

Page 11: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

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.

Page 12: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos
Page 13: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

O controlador

Controller faz a mediação entre as camadas, interpretando a

entrada de dados e gerenciando o modelo e a visão.

Page 14: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

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

Page 15: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos
Page 16: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

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.

Page 17: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

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.

Page 18: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

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

Page 19: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

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

Page 20: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

Dúvidas?

Page 21: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

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.

Page 22: Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto de software orientado a objetos

Obrigado